#ifndef VIDEONET_CLIENT_CONFIGURE_H

#define VIDEONET_CLIENT_CONFIGURE_H

/*!
* @file
*  VideoNetClient_Configure.h
* @brief
*  远程配置结构定义
*  远程配置管理，系统配置结构体定义
* @author
*  ZW
* @date
*  2014年06月23日
* @version
*  5.2.0
*/

/**************************************************************************
*                           常量定义                                     *
************************************************************************* */

/** @brief 最大视屏输入数											                    		 */
#define DVR_MAX_VIDEOIN_NUM				(32)

/** @brief 最大PTZ数											                    			 */
#define DVR_MAX_PTZ_NUM					(DVR_MAX_VIDEOIN_NUM)

/** @brief 最大视频解码器个数										                    		 */
#define DVR_MAX_VIDEOENC_NUM			(DVR_MAX_VIDEOIN_NUM)

/** @brief 最大报警输入数											                    		 */
#define DVR_MAX_ALARMIN_NUM				(16)

/** @brief 最大报警输出数											                    		 */
#define DVR_MAX_ALARMOUT_NUM			(8)

/** @brief 最大异常个数											                    			 */
#define DVR_MAX_EXCEPTION_NUM			(8)

/** @brief 最大视屏输出个数											                    		 */
#define DVR_MAX_VIDEOOUT_NUM			(8)

/** @brief 一星期天数															          		 */
#define DVR_MAX_DAYS					(7)

/** @brief 一天最大时间段（每5分钟一个时间段）						                    		 */
#define DVR_MAX_TIMESEGMENT				(24 * 2)

/** @brief 最大IP地址长度														          		 */
#define DVR_MAX_IP_STR_LEN				(16)

/** @brief 最大MAC地址长度														          		 */
#define DVR_MAX_MAC_STR_LEN				(18)

/** @brief MAC地址数字个数															          	 */
#define DVR_MAX_MAC_NUM_LEN				(6)

/** @brief 最大支持DDNS协议个数													          		 */
#define DVR_MAX_DDNSPRO_NUM				(32)

/** @brief 最大DDNS协议名称长度													          		 */
#define DVR_MAX_DDNSPRONAME_LEN			(128)

/** @brief 最大域名长度															          		 */
#define DVR_MAX_DOMAINNAME_LEN 			(256)

/** @brief 最大Email长度														          		 */
#define DVR_MAX_EMAIL_LEN				(256)

/** @brief 设备最大用户数														          		 */
#define DVR_MAX_USER_NUM 				(16)

/** @brief 最大用户名长度														          		 */
#define DVR_MAX_USERNAME_LEN 			(64)

/** @brief 最大密码长度															          		 */
#define DVR_MAX_PASSWORD_LEN 			(64)

/** @brief 最大权限个数															          		 */
#define DVR_MAX_RIGHT_NUM				(32)

/** @brief 最大在线用户数																		*/
#define DVR_MAX_ONLINEUSER_NUM			(16)

/** @brief IP白名单数																			*/
#define DVR_MAX_WHITEIP_NUM				(10)

/** @brief IP黑名单数																			*/
#define DVR_MAX_BLACKIP_NUM				(10)

/** @brief 最大预置点个数															       		 */
#define DVR_MAX_PRESET_NUM				(128)

/** @brief 移动侦测区域个数														          		 */
#define DVR_MAX_MOTIONSCOPE_NUM			(64)

/** @brief 最大色度单元个数											          		 */
#define DVR_MAX_PICSEC_NUM				(24)

/** @brief 最大马赛克区域											          		 */
#define DVR_MAX_VIDEOSHELTER_NUM		(8)

/** @brief 字体名长度												          		 */
#define DVR_MAX_FONTNAME_LEN			(32)

/** @brief 点阵通道名最大长度,含结束符								          		 */
#define DVR_MAX_CHANNELNAME_LEN			(20 + 1)

/** @brief 安装信息通道名称							          		 */
#define DVR_MAX_COMPANYNAME_LEN			(20 + 1)

/** @brief 安装信息电话号码长度							          		 */
#define DVR_MAX_TEL_NUM_LEN			(20 + 1)

/** @brief PTZ协议名称长度															 */
#define DVR_MAX_PTZPRONAME_LEN			(48)

/** @brief PTZ协议个数(安装和未安装各256)											 */
#define DVR_MAX_PTZPRO_NUM				(64)

/** @brief 点阵宽度															    	 */
#define DVR_MAX_LATTICE_WIDTH			(24 * 10)

/** @brief 点阵高度													          		 */
#define DVR_MAX_LATTICE_HEIGHT			(24)

/** @brief 点阵总体大小												          		 */
#define DVR_MAX_LATTICE_BUFSIZE			(24 * 24 * 10 / 8)

/** @brief 设备节点名长度											          		 */
#define DVR_MAX_PARTITION_DEVNODE_LEN	(16)

/** @brief 单个硬盘中最大分区个数													 */
#define DVR_MAX_PARTITION_IN_HARDDISK	(15)

/** @brief 最大设备节点个数											          		 */
#define DVR_MAX_PARTITION_IN_DISKGROUP	(32)

/** @brief 最大硬盘个数												          		 */
#define DVR_MAX_HARDDISK_NUM 			(16)

/** @brief 最大硬盘组个数											          		 */
#define DVR_MAX_DISKGROUP_NUM 			(8)

/** @brief 最大支持分辨率个数										          		 */
#define DVR_MAX_VGARESOLVING_NUM		(16)

/** @brief 设备版本名称长度												          	 */
#define DVR_MAX_VERSION_LEN				(32)

/** @brief Hxht普通字符串长度														*/
#define DVR_COMMON_STRING_LEN			(32)

/** @brief 支持的协议库的最大个数													*/
#define DVR_MAX_SUPPORT_PROTOCOL_NUM	(32)

/** @brief WIFI热点名称最大长度														*/
#define DVR_MAX_SSID_LEN				(128)

/** @brief 可以识别的WIFI热点最大个数												 */
#define DVR_MAX_AP_NUM					(10)

/** @brief WIFI密钥最大长度															*/
#define DVR_MAX_WIFI_KEY_LEN			(128)

/** @brief 最大源设备个数															*/
#define MAX_SOURCE_DEVICE_NUMBER		(16)

/** @brief 最大输出设备个数															*/
#define MAX_DEVICE_OUTPUT				(16)

//支持最大VGA个数
#define MAX_VGA_NUM						(8)

//TV输出
#define MAX_TV_NUM						(8) 

/** @brief ISP 参数模版个数 */
#define DVR_MAX_ISP_TEMPLATE		(6)

/** @brief ISP 参数邋AEWindow 个数 */
#define DVR_MAX_ISP_AEWINDOW		(6)

/** @brief ISP 参数白平衡模版个数 */
#define DVR_MAX_ISP_WHITEBALANCE	(6)

/** @brief 一个码流支持的最大ROI数目 */
#define MAX_ROI_NUM 4

/** @brief 设备列表一次传输的最大设备数 */
#define MAX_DEVICE_COUNT	32

/**************************************************************************
*								协议名称定义			                  *
**************************************************************************/
/** @brief 私有协议														*/
#define	PROTOCOL_PRIVATE				0

/** @brief 手机协议														*/
#define	PROTOCOL_TIDEMOBILE				1

/** @brief 互信互通协议													*/
#define	PROTOCOL_HXHT					(1<<1)

//RTSP协议
#define	PROTOCOL_RTSP						(1<<2)

//Onvif协议
#define	PROTOCOL_ONVIF						(1<<3)

//xxx协议
//#define PROTOCOL_XXX						(1<<4)

/**************************************************************************
*                             配置信息主、次类型定义                      *
************************************************************************* */

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取网络参数												          	 */
#define VIDEONETCLIENT_GET_NETCFG 					101

/** @brief 设置网络参数												          	 */
#define VIDEONETCLIENT_SET_NETCFG 					102

//次类型
/** @brief 全部网络配置(VIDEONETCLIENT_NET_CFG)								          	 */
#define NETCFG_ALL						 	0xFFFFFFFF

/** @brief Dhcp配置信息(VIDEONETCLIENT_DHCP_CONF)										*/
#define NETCFG_DHCP_CONF					1

/** @brief Dhcp状态信息(VIDEONETCLIENT_DHCP_STATE)							          	 */
#define NETCFG_DHCP_STATE					(1 << 1)

/** @brief Eth网络信息(VIDEONETCLIENT_ETH_IF)								          	 */
#define NETCFG_ETH_IF						(1 << 2)

/** @brief PPPoE配置(VIDEONETCLIENT_PPPOE_CONF)								          	 */
#define NETCFG_PPPOE_CONF					(1 << 3)

/** @brief PPPoE网络信息(VIDEONETCLIENT_PPPOE_IF)							          	 */
#define NETCFG_PPPOE_IF						(1 << 4)

/** @brief DNS配置信息(VIDEONETCLIENT_DNS_CONF)								          	 */
#define NETCFG_DNS_CONF						(1 << 5)

/** @brief DDNS配置信息(VIDEONETCLIENT_DDNS_CONF)							          	 */
#define NETCFG_DDNS_CONF					(1 << 6)

/** @brief http配置(VIDEONETCLIENT_HTTP_CONF)								          	 */
#define NETCFG_HTTP_CONF					(1 << 7)

/** @brief 服务端口配置信息(VIDEONETCLIENT_LISTENPORT_CONF)						       	 */
#define NETCFG_LISTENPORT_CONF				(1 << 8)

/** @brief 手机端口配置信息(VIDEONETCLIENT_MOBILE_CONF)							       	 */
#define NETCFG_MOBILE_CONF					(1 << 9)

/** @brief 自动发现端口配置信息(VIDEONETCLIENT_AUTODETECT_CONF)					     	 */
#define NETCFG_AUTODETECT_CONF				(1 << 10)

/** @brief WIFI网络信息(VIDEONETCLIENT_ETH_IF)											*/
#define NETCFG_WLAN_IF						(1 << 11)

/** @brief WIFI DHCP配置(VIDEONETCLIENT_DHCP_CONF)										*/
#define NETCFG_WLAN_DHCP_CONF				(1 << 12)

/** @brief WIFI Dhcp状态信息(VIDEONETCLIENT_DHCP_STATE)									*/
#define NETCFG_WLAN_DHCP_STATE				(1 << 13)

/** @brief WIFI DNS配置信息(VIDEONETCLIENT_DNS_CONF)									*/
#define NETCFG_WLAN_DNS_CONF				(1 << 14)

/** @brief WIFI 热点列表(VIDEONETCLIENT_WLAN_ACCESSPOINT_CFG)							*/
#define NETCFG_WLAN_ACCESSPOINTS			(1 << 15)

/** @brief WIFI 连接配置(VIDEONETCLIENT_WLAN_CONNECTION)								*/
#define NETCFG_WLAN_CONNECTION				(1 << 16)

/** @brief WIFI 连接状态(VIDEONETCLIENT_WLAN_STATE)										*/
#define NETCFG_WLAN_STATE					(1 << 17)

/** @brief UPNP 配置信息(VIDEONETCLIENT_UPNP_CONF)										*/
#define NETCFG_UPNP_CONF					(1 << 18)

#define NETCFG_BASIC_CONF					(1 << 19)

// 邮件服务器配置
#define NETCFG_EMAIL_CONF					(1 << 20)							
/** @brief FTP 配置信息(VIDEONETCLIENT_UPNP_CONF)										*/
#define NETCFG_FTP_CONF					(1 << 21)

/**************************************************************************
*                             配置信息主、次类型定义                      *
************************************************************************* */

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取网络参数												          	 */
#define VIDEONETCLIENT_GET_NETCFG_EX 					301

/** @brief 设置网络参数												          	 */
#define VIDEONETCLIENT_SET_NETCFG_EX 					302

//次类型
/** @brief 全部网络配置(VIDEONETCLIENT_NET_CFG_EX)								          	 */
#define NETCFGEX_ALL						 	0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取服务器配置参数												   	 */
#define VIDEONETCLIENT_GET_NETSERVERCFG 			103

/** @brief 设置服务器配置参数												     */
#define VIDEONETCLIENT_SET_NETSERVERCFG 			104

//次类型
/** @brief 全部网络配置(VIDEONETCLIENT_NET_MANAGER)									     */
#define NETSERVERCFG_ALL					0xFFFFFFFF

/** @brief CMS配置信息(VIDEONETCLIENT_NET_CMS)										 	 */
#define NETSERVERCFG_CMS_CONF				1

/** @brief CMS状态信息(VIDEONETCLIENT_CMS_STATE)								    	 */
#define NETSERVERCFG_CMS_STATE				2

/** @brief AMS配置信息(VIDEONETCLIENT_NET_AMS)										   	 */
#define NETSERVERCFG_AMS_CONF				4

/** @brief NTP配置信息(VIDEONETCLIENT_NET_NTP)										  	 */
#define NETSERVERCFG_NTP_CONF				8

/** @brief EML配置信息(VIDEONETCLIENT_NET_EML)										 	 */
#define NETSERVERCFG_EML_CONF				16

/** @brief EML(1.1.0版本)配置信息(VIDEONETCLIENT_NET_EML_1)							 	 */
#define NETSERVERCFG_EML_1_CONF				32

/** @brief CMS协议信息														 	 */
#define NETSERVERCFG_CMS_PROTOCOL			64

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取图像配置参数													  	 */
#define VIDEONETCLIENT_GET_PICCFG 					105

/** @brief 设置图像配置参数													  	 */
#define VIDEONETCLIENT_SET_PICCFG 					106

//次类型
/** @brief 全部网络配置(VIDEONETCLIENT_PIC_CFG)										 	 */
#define PICCFG_ALL							0xFFFFFFFF

/** @brief 视频制式配置信息(没有实现)										 	 */
#define PICCFG_WORKMODE_CONF				1	/*工作模式                                              */

/** @brief OSD信息(没有实现)												   	 */
#define PICCFG_OSD_CONF						2

/** @brief 通道别名信息(结构体VIDEONETCLIENT_PIC_CFG中的结构体VIDEONETCLIENT_ALIAS_CFG)		   	 */
#define PICCFG_CHNAME_CONF					4

/** @brief 时间段信息(没有实现)												   	 */
#define PICCFG_TIMESEC_CONF					8

/** @brief 视频丢失配置信息(没有实现)										   	 */
#define PICCFG_VIDEOLOST_CONF				16

/** @brief 移动侦测配置信息(没有实现)										   	 */
#define PICCFG_MOTION_CONF					32

/** @brief 马赛克配置信息(没有实现)											   	 */
#define PICCFG_MOSAIC_CONF					64

/** @brief 通道别名信息（Unicode）(结构体VIDEONETCLIENT_PIC_CFG中的结构体VIDEONETCLIENT_ALIAS_CFG_1) */
#define PICCFG_CHNAME_UNICODE_CONF			128

/** @brief  NXP8850 Image Sensor Processing配置信息 */
#define PICCFG_NXP8850ISP_CONF				256

/** @brief 移动侦测联动配置信息，联动超过第32个通道的配置必须使用这个子命令配置,32路以内的设备可以忽略此子命令 */
#define PICCFG_MOTION_ACTION_CONF			512

/** @brief 视频丢失联动配置信息，联动超过第32个通道的配置必须使用这个子命令配置,32路以内的设备可以忽略此子命令 */
#define PICCFG_VLOSTS_ACTION_CONF			1024

/** @brief  视频相关高级配置配置, 编码类型(H264/H265), 走廊模式 其对应的结构体为VIDEONETCLIET_ADVANCED_CHANNEL_CFG*/
#define PICCFG_ADVANCED_CONF				2048

/** @brief 视频遮挡联动配置信息，联动超过第32个通道的配置必须使用这个子命令配置,32路以内的设备可以忽略此子命令 */
#define PICCFG_SHELTER_ACTION_CONF			4096

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取编码配置参数													  	 */
#define VIDEONETCLIENT_GET_COMPRESSCFG 				107

/** @brief 设置编码配置参数													  	 */
#define VIDEONETCLIENT_SET_COMPRESSCFG 				108

//次类型
/** @brief 全部网络配置(VIDEONETCLIENT_COMPRESSION_CFG)								  	 */
#define COMPRESSCFG_ALL						0xFFFFFFFF

/** @brief 工作模式配置信息(没有实现)										  	 */
#define COMPRESSCFG_WORKMODE_CONF			1

/** @brief 编码能力信息(没有实现)											 	 */
#define COMPRESSCFG_COMPRESS_CAP			2

/** @brief 编码配置信息(没有实现)												 */
#define COMPRESSCFG_COMPRESS_CONF			4

/** @brief 能力集																*/
#define COMPRESSCFG_CAPABILITY				8  

/** @brief 针对模拟设备的编码能力(VIDEONETCLIENT_RESOLUTION_AND_FRAME_CAP_TABLE)	*/
#define COMPRESSCFG_RESOLUTION_AND_FRAME_TABLE		64

/** @brief 针对模拟设备的编码能力(VIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP_TABLE)	*/
#define COMPRESSCFG_RESOLUTION_AND_BITRATE_TABLE	128  

/*@bref 针对模拟设备视频输入的相关信息(VIDEONETCLIENT_VI_CFG)*/
#define COMPRESSCFG_VIDEO_INPUT_INFO				256

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取本地录像参数														 */
#define VIDEONETCLIENT_GET_RECORDCFG 				109

/** @brief 设置本地录像参数														 */
#define VIDEONETCLIENT_SET_RECORDCFG 				110

//次类型
/** @brief 全部录像配置(VIDEONETCLIENT_RECORD_SCHED)									 */
#define RECORDCFG_ALL						0xFFFFFFFF

/** @brief 录像控制状态配置(VIDEONETCLIENT_RECORD_CTRLSTATE)							 */
#define RECORD_CTRL_STATE					1

/** @brief 录像码流选择(VIDEONETCLIENT_RECORD_STREAM)									 */
#define RECORD_STREAM						2
/** @brief 获取DVR上最早录像时间和最晚录像时间												 */
#define RECODE_TIME_INFO					4
///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取系统时间参数														 */
#define VIDEONETCLIENT_GET_SYSTIME 					111

/** @brief 设置系统时间参数														 */
#define VIDEONETCLIENT_SET_SYSTIME 					112

//次类型
/** @brief 系统时间配置(VIDEONETCLIENT_TIME)											 */
#define SYSTIME_ALL							0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取云台参数															 */
#define VIDEONETCLIENT_GET_PTZCFG 					113

/** @brief 设置云台参数															 */
#define VIDEONETCLIENT_SET_PTZCFG 					114

//次类型
/** @brief 云台参数配置(VIDEONETCLIENT_PTZPRO_CFG)										 */
#define PTZCFG_ALL							0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取串口配置参数														 */
#define VIDEONETCLIENT_GET_SERIALCFG 				115

/** @brief 设置串口配置参数														 */
#define VIDEONETCLIENT_SET_SERIALCFG 				116

//次类型
/** @brief 全部串口参数配置(VIDEONETCLIENT_DECODER_CFG)									 */
#define SERIALCFG_ALL						0xFFFFFFFF

/** @brief 电子PTZ配置(VIDEONETCLIENT_PTZ_ELCTRONIC)									 */
#define SERIALCFG_PTZ_ELCTRONIC_CFG			1

/** @brief PTZ补充配置(VIDEONETCLIENT_PTZ_REPLENISH_1)									 */
#define SERIALCFG_PTZ_REPLENISH_1_CFG		2


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取报警配置参数														 */
#define VIDEONETCLIENT_GET_ALARMCFG 				117

/** @brief 设置报警配置参数														 */
#define VIDEONETCLIENT_SET_ALARMCFG 				118

//次类型
/** @brief 全部报警参数配置(VIDEONETCLIENT_ALARM_CFG)									 */
#define ALARMCFG_ALL						0xFFFFFFFF

/** @brief 报警工作模式(没有实现)												 */
#define ALARMCFG_WORKMODE_CONF				1

/** @brief 快照配置(没有实现)													 */
#define ALARMCFG_IMGCAPTURE_CONF			2

/** @brief 报警输入配置(没有实现)												 */
#define ALARMCFG_ALARMIN_CONF				4

/** @brief 报警输出配置(没有实现)												 */
#define ALARMCFG_ALARMOUT_CONF				8

/** @brief 异常处理配置(没有实现)												 */
#define ALARMCFG_EXCEPTION_CONF				16

/** @brief 报警输入联动配置, 超过第32路的报警输入配置必须使用此子命令获取和设置联动配置，未超过32路报警输入的设备可以忽略此命令 */
#define ALARMCFG_ACTION_MULTICHANNEL_CONF	32

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取显示输出配置参数													 */
#define VIDEONETCLIENT_GET_VIDEOOUTCFG 				119

/** @brief 设置显示输出配置参数													 */
#define VIDEONETCLIENT_SET_VIDEOOUTCFG 				120

//次类型
/** @brief 全部显示输出参数配置(VIDEONETCLIENT_VO_CFG)									 */
#define VIDEOOUTCFG_ALL						0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取用户信息参数														 */
#define VIDEONETCLIENT_GET_USERCFG 					121

/** @brief 设置用户信息参数														 */
#define VIDEONETCLIENT_SET_USERCFG 					122

//次类型
/** @brief 用户信息参数(VIDEONETCLIENT_USER_CFG)										 */
#define USERCFG_ALL							0xFFFFFFFF

/** @brief 单个用户信息(VIDEONETCLIENT_USER)											 */
#define USERCFG_ONE							1

/** @brief 添加用户(VIDEONETCLIENT_USER)												 */
#define USERCFG_CREATE						2

/** @brief 删除用户(VIDEONETCLIENT_USER)												 */
#define USERCFG_REMOVE						4

/** @brief 在线用户(VIDEONETCLIENT_ONLINEUSER_CFG)										*/
#define USERCFG_USER_ONLINE					8

/** @brief 强制删除单个在线用户(VIDEONETCLIENT_ONLINEUSER)								*/
#define USERCFG_USER_ONLINE_ONE				16

/** @brief 是否启用用户白名单(VIDEONETCLIENT_WHITEIP_ENABLE)							*/
#define USERCFG_WHITE_IP_ENABLE				32

/** @brief 用户白名单(结构体VIDEONETCLIENT_USER_CFG中的VIDEONETCLIENT_WHITEIP)					*/
#define USERCFG_WHITE_IP					64

/** @brief 用户黑名单列表(VIDEONETCLIENT_BLACKIP_LIST)							*/
#define USERCFG_BLACK_IP_LIST				128

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取设备信息参数														 */
#define VIDEONETCLIENT_GET_DEVICEINFO 				123

/** @brief 设置设备信息参数，只读												 */
#define VIDEONETCLIENT_SET_DEVICEINFO				124

//次类型
/** @brief 全部设备信息参数(VIDEONETCLIENT_DEVICE_INFO)									 */
#define DEVICEINFO_ALL						0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取设备配置参数														 */
#define VIDEONETCLIENT_GET_DEVICECFG 				125

/** @brief 设置设备配置参数														 */
#define VIDEONETCLIENT_SET_DEVICECFG				126

//次类型
/** @brief 全部设备配置参数(VIDEONETCLIENT_DEVICE_CFG)									 */
#define DEVICECFG_ALL						0xFFFFFFFF

/** @brief 锁屏时间参数(没有实现)												 */
#define DEVICECFG_LOCKSCREENTIME_CONF		1

/** @brief 语言(没有实现)														 */
#define DEVICECFG_LANGUAGE_CONF				2

/** @brief 日期时间格式(没有实现)												 */
#define DEVICECFG_DATETIME_CONF				4

/** @brief 夏时制(没有实现)														 */
#define DEVICECFG_DST_CONF					8

/** @brief 设备ID，用于遥控器(没有实现)											 */
#define DEVICECFG_REMOTECONTROL_ID			16

/** @brief 时区(没有实现)														 */
#define DEVICECFG_TIMEZONE_CONF				32

/** @brief 视频制式配置信息(没有实现)											 */
#define DEVICECFG_VIDEOSTANDARD_CONF		64

/** @brief 设备安装信息															 */
#define DEVICECFG_INSTALLTION_CONF			128

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取存储系统信息														 */
#define VIDEONETCLIENT_GET_STORAGEINFO				127

/** @brief 设置存储系统信息，只读												 */
#define VIDEONETCLIENT_SET_STORAGEINFO				128

//次类型
/** @brief 全部设备信息参数(VIDEONETCLIENT_STORAGE_CFG)									 */
#define STORAGEINFO_ALL						0xFFFFFFFF

/** @brief 存储系统工作模式参数(没有实现)										 */
#define STORAGEINFO_WORKMODE_CONF			1

/** @brief 硬盘信息参数(没有实现)												 */
#define STORAGEINFO_DISK_INFO				2

/** @brief 磁盘组信息参数(没有实现)												 */
#define STORAGEINFO_DISKGROUP_INFO			4

/** @brief 磁盘效验码(没有实现)													 */
#define STORAGEINFO_DISK_MARK				8


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取设备状态信息														 */
#define VIDEONETCLIENT_GET_DEVICESTATE				129

/** @brief 设置设备状态信息，空出不用											 */
#define VIDEONETCLIENT_SET_DEVICESTATE				130

//次类型
/** @brief 全部设备状态信息(VIDEONETCLIENT_DEVICE_STATE)								 */
#define DEVICESTATE_ALL						0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取设备自动维护配置													 */
#define VIDEONETCLIENT_GET_DEVICEMAINTENANCE		131

/** @brief 设置设备自动维护配置													 */
#define VIDEONETCLIENT_SET_DEVICEMAINTENANCE		132

//次类型
/** @brief 全部设备自动维护配置(VIDEONETCLIENT_DEVICE_MAINTENANCE)						 */
#define DEVICEMAINTENANCE_ALL				0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取设备功能定制配置													 */
#define VIDEONETCLIENT_GET_DEVICECUSTOM				133

/** @brief 设置设备功能定制配置													 */
#define VIDEONETCLIENT_SET_DEVICECUSTOM				134

//次类型
/** @brief 全部设备功能定制配置(VIDEONETCLIENT_DEVICE_CUSTOM)							 */
#define DEVICECUSTOM_ALL					0xFFFFFFFF

/** @brief HC板型编解码资源分配模式信息（暂时不用）								 */
#define DEVICECUSTOM_HCRESMODE_CONF			8

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取HXHT配置(没有实现)												 */
#define VIDEONETCLIENT_GET_HXHT						135

/** @brief 设置HXHT配置(没有实现)												 */
#define VIDEONETCLIENT_SET_HXHT						136

//次类型
/** @brief 全部HXHT配置(没有实现)												 */
#define HXHT_ALL							0xFFFFFFFF

/** @brief NAT状态配置(没有实现)												 */
#define	HXHT_NATSTATUS						1

/** @brief 语音呼叫配置(没有实现)												 */
#define	HXHT_VOICEPARAM						2

/** @brief CMS存储注册配置信息(没有实现)										 */
#define HXHT_CMS_STORAGE					4

/** @brief 前端设备ID(没有实现)													 */
#define HXHT_DEVICE_ID						8


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取要加载的协议名称（私有协议是必须加载的，不在其中）(没有实现)		 */
#define	VIDEONETCLIENT_GET_PROTOCOL					137

/** @brief 设置要加载的协议名称	(没有实现)										 */
#define	VIDEONETCLIENT_SET_PROTOCOL					138

//次类型
/** @brief 全部要加载的协议名称(没有实现)										 */
#define PROTOCOL_ALL						0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取源设备配置														 */
#define	VIDEONETCLIENT_GET_SOURCE_DEVICE			139

/** @brief 设置源设备配置														 */
#define	VIDEONETCLIENT_SET_SOURCE_DEVICE			140

//次类型
/** @brief 全部源设备配置(VIDEONETCLIENT_SOURCE_DEVICE_INFO_CONFIG)						 */
#define SOURCE_DEVICE_ALL					0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
////主类型
///** @brief 获取设备输出														*/
//#define	VIDEONETCLIENT_GET_DEVICE_OUTPUT			141
//
///** @brief 设置设备输出(无效命令，只能获取，不能设置)							*/
//#define	VIDEONETCLIENT_SET_DEVICE_OUTPUT			142
//
////次类型
///** @brief 全部设备输出(VIDEONETCLIENT_DEVICE_OUTPUT)									*/
//#define DEVICE_OUTPUT_ALL					0xFFFFFFFF


///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取解码器显示设备信息												*/
#define	VIDEONETCLIENT_GET_DISP_DEV					143

/** @brief 设置解码器显示设备信息												*/
#define	VIDEONETCLIENT_SET_DISP_DEV					144

//次类型
/** @brief 所有解码器显示设备信息(VIDEONETCLIENT_DISPDEV_CFG)							*/
#define DISP_DEV_ALL						0xFFFFFFFF

/** @brief VGA信息(VIDEONETCLIENT_VGAPARA_CFG)											*/
#define DISP_DEV_VGA						1

/** @brief TV 信息(VIDEONETCLIENT_VOOUT_CFG)											*/
#define DISP_DEV_TV							2

///////////////////////////////////////////////////////////////////////////////////////////////////////
/** @brief 获取NXP8850 ISP参数													*/
#define	VIDEONETCLIENT_GET_NXP8850ISP				145
/** @brief 设置NXP8850 ISP参数													*/
#define	VIDEONETCLIENT_SET_NXP8850ISP				146
//次类型
/** @brief 全部ISP参数															*/
#define NXP8850ISP_ALL						0xFFFFFFFF
///////////////////////////////////////////////////////////////////////////////////////////////////////

/** @brief 获取应用层特性参数													*/
#define	VIDEONETCLIENT_GET_APP_FEATURE				200
/** @brief 设置应用层特性参数													*/
#define	VIDEONETCLIENT_SET_APP_FEATURE				201
//次类型
/** @brief 无效值																*/
#define APP_FEATURE_ALL						0xFFFFFFFF

///////////////////////////////////////////////////////////////////////////////////////////////////////

/**************************************************************************
*                         探测配置信息主、次类型定义                      *
************************************************************************* */

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取网络参数												          	 */
#define VIDEONETCLIENT_PROBE_GET_NETCFG 			17

/** @brief 设置网络参数												          	 */
#define VIDEONETCLIENT_PROBE_SET_NETCFG 			18

//次类型
/** @brief 基本网络配置(VIDEONETCLIENT_PROBE_NET_CFG)						          	 */
#define PROBE_NETCFG_BASE					1

/** @brief 无线连接热点配置(VIDEONETCLIENT_PROBE_WLAN_CONNECTION)						 */
#define PROBE_NETCFG_WLAN_CONNECTION		2

/** @brief 热点列表配置(VIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT_CFG)						 */
#define PROBE_NETCFG_WLAN_AP_LIST			3


/**************************************************************************
*                        IPC的ISP配置信息主、次类型定义 （该命令仅适用于控制IPC设备）                     *
************************************************************************* */

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取ISP配置参数												          	 */
#define VIDEONETCLIENT_IPC_GET_ISPCFG 			147

/** @brief 设置ISP参数												          	 */
#define VIDEONETCLIENT_IPC_SET_ISPCFG 			148

//次类型
/** @brief 颜色配置(ZW_IPC_COLOR)						          	 */
#define IPC_ISPCFG_COLOR					1

/** @brief 曝光配置(ZW_IPC_EXPOSURE)					          	 */

#define IPC_ISPCFG_EXPOSURE					2

/** @brief 白平衡配置(ZW_IPC_WHITEBLANCE)				          	 */
#define IPC_ISPCFG_WHITEBLANCE				3

/** @brief 日夜切换配置(ZW_IPC_DAY_NIGHT)					         */
#define IPC_ISPCFG_DAY_NIGHT				4

/** @brief 日夜切换配置(ZW_IPC_BASIC)					          	 */
#define IPC_ISPCFG_BASIC					5

/** @brief 日夜切换配置(ZW_IPCISP_DEFAULT)					         */
#define IPC_ISPCFG_DEFAULT					6

/** @brief ISP所有配置(ZW_IPC_ISP_CONFIG)					         */
#define IPC_ISPCFG_ALL					(0xFFFFFFFF)

/**************************************************************************
*                        NVR的ISP配置信息主、次类型定义 （该命令仅适用于NVR设备）                     *
************************************************************************* */

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取NVR的ISP配置参数												          	 */
#define VIDEONETCLIENT_NVR_GET_ISPCFG 			149

/** @brief 设置NVR的ISP参数												          	 */
#define VIDEONETCLIENT_NVR_SET_ISPCFG 			150

//次类型
/** @brief 颜色配置(ZW_NVR_COLOR)						          	 */
#define NVR_ISPCFG_COLOR					1

/** @brief 曝光配置(ZW_NVR_EXPOSURE)					          	 */
#define NVR_ISPCFG_EXPOSURE					2

/** @brief 白平衡配置(ZW_NVR_WHITEBLANCE)				          	 */
#define NVR_ISPCFG_WHITEBLANCE				3

/** @brief 日夜切换配置(ZW_NVR_DAY_NIGHT)					         */
#define NVR_ISPCFG_DAY_NIGHT				4

/** @brief 日夜切换配置(ZW_NVR_BASIC)					          	 */
#define NVR_ISPCFG_BASIC					5

/** @brief 日夜切换配置												*/
#define NVR_ISPCFG_DEFAULT					6

/** @brief ISP所有配置(ZW_IPC_ISP_CONFIG)					         */
#define NVR_ISPCFG_ALL					(0xFFFFFFFF)




/**************************************************************************
*         ISP配置扩展信息主、次类型定义 （该命令仅适用于所有设备）        *
************************************************************************* */
//主类型
/** @brief 获取设备的ISP配置参数												          	 */
#define VIDEONETCLIENT_COM_GET_ISPCFG_EX 			151

/** @brief 设置设备的ISP参数												          	 */
#define VIDEONETCLIENT_COM_SET_ISPCFG_EX 			152

//次命令
/** @brief ISP扩展的所有配置(ZW_IPC_ISP_CONFIG) */	
#define COM_ISPCFG_EX_ALL								(0xFFFFFFFF)


/**************************************************************************
*         ISP色彩相关的配置 （该命令仅适用于所有设备）        *
************************************************************************* */
//主类型
/** @brief 获取设备的ISP配置参数												          	 */
#define VIDEONETCLIENT_GET_TONE_ISP 			153

/** @brief 设置设备的ISP参数												          	 */
#define VIDEONETCLIENT_SET_TONE_ISP 			154

//次命令
/** @brief ISP扩展的所有配置(ZW_IPC_ISP_CONFIG) */	
#define TONE_ISP_ALL								(0xFFFFFFFF)

/**************************************************************************
*               ROI相关的配置 （该命令适用于所有设备）                    *
************************************************************************* */
//主类型
/** @brief 获取设备的ROI配置参数										  */
#define VIDEONETCLIENT_GET_ROI_CFG 			155

/** @brief 设置设备的ROI参数											  */
#define VIDEONETCLIENT_SET_ROI_CFG 			156

//次命令
#define ROI_CFG_ALL								(0xFFFFFFFF)

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取设备信息扩展参数														 */
#define VIDEONETCLIENT_GET_DEVICEINFO_EX 				157

/** @brief 设置设备信息扩展参数，只读												 */
#define VIDEONETCLIENT_SET_DEVICEINFO_EX				158

//次类型
/** @brief 全部设备信息扩展参数(VIDEONETCLIENT_DEVICE_INFO_EX)									 */
#define DEVICEINFO_EX_ALL						0xFFFFFFFF



/**************************************************************************
*               设备连接列表命令                    *
************************************************************************* */
//主类型
/** @brief 获取设备连接列表										  */
#define VIDEONETCLIENT_GET_DEVICES_CONNECT_LIST 			400

/** @brief 设置设备连接列表											  */
#define VIDEONETCLIENT_SET_DEVICES_CONNECT_LIST 			401

//次命令
//
#define DEVICES_CONNECT_LIST_ALL								(0xFFFFFFFF)



/**************************************************************************
*               修改NVR连接的设备IP                    *
************************************************************************* */
//主类型
/** @brief 获取NVR连接的设备的网络信息										  */
#define VIDEONETCLIENT_GET_DEVICE_NETWORK 					402

/** @brief 设置NVR连接的设备的网络信息											  */
#define VIDEONETCLIENT_SET_DEVICE_NETWORK 					403

//次命令
//
#define DEVICE_NETWORK_ALL								(0xFFFFFFFF)



/**************************************************************************
*				获取NVR连接的设备的状态                    *
************************************************************************* */
//主类型
/** @brief 获取NVR连接的设备的连接状态										  */
#define VIDEONETCLIENT_GET_DEVICE_STATE 					404

/** @brief 设置NVR连接的设备的连接状态（不可用，设备状态是只读的）			 */
#define VIDEONETCLIENT_SET_DEVICE_STATE 					405

//次命令
//
#define DEVICE_STATE_ALL								(0xFFFFFFFF)



/**************************************************************************
*                             配置信息主、次类型定义                      *
************************************************************************* */

///////////////////////////////////////////////////////////////////////////////////////////////////////
//主类型
/** @brief 获取网络参数												          	 */
#define VIDEONETCLIENT_GET_NETCFG_EX 					301

/** @brief 设置网络参数												          	 */
#define VIDEONETCLIENT_SET_NETCFG_EX 					302

//次类型
/** @brief 全部网络配置(VIDEONETCLIENT_NET_CFG_EX)								          	 */
#define NETCFGEX_ALL						 	0xFFFFFFFF









//该结构体仅适用于IPC设备
/*
*  @struct	tagZW_IPC_COLOR
*  @brief	IPC颜色配置
 */
typedef struct tagZW_IPC_COLOR
{
	int bValid;			/*!< 本结构体是否有效，0表示无效 */
	
	BYTE nAutoChangeBright;		/*!< 是否自适应亮度,0表示不进行自适应,1表示自适应亮度0xff表示不支持 */   //当是具有车牌相关功能的IPC时，该功能被屏蔽（使用结构体ZW_SYSCOMMON_NORMAL_CFG的nEnableFlag字段用来标记是否具有车牌标记的功能）

	BYTE nBright;		/*!< 亮度,范围[0,100] */   //当是具有车牌相关功能的IPC时，该功能表示强光抑制（使用结构体ZW_SYSCOMMON_NORMAL_CFG的nEnableFlag字段用来标记是否具有车牌标记的功能）
	BYTE nContrast;		/*!< 对比度,范围[0,100] */
	BYTE nSaturation;	/*!< 饱和度,范围[0,100] */	
	BYTE nChroma;		/*!< 色度,范围[0,100] */	
	BYTE nSharpness;		/*!< 锐度,范围[0,100] */	
}ZW_IPC_COLOR;

/*
*  @struct	tagZW_IPC_BASIC
*  @brief	IPC基本配置
 */
typedef struct tagZW_IPC_BASIC
{
	int bValid;			/*!< 本结构体是否有效，0表示无效 */

	BYTE nAntiFlickMode;		/*!< 抗抖动模式,0表示50HZ,1表示60HZ ,0xff表示不支持*/
	BYTE n3DDeNoise;			/*!< 3D降噪, 0表示关闭3D降燥, 1表示弱,2表示一般,3表示强 */
	BYTE nBackLight;			/*!< 背光补偿,0表示关闭,1表示打开 0xff表示不支持*/
	BYTE nWideDynamicRange;	/*!< 宽动态,0表示关闭, 1表示弱,2表示一般,3表示强 0xff表示不支持*/
	BYTE nMirrorMode;		/*!< 镜像模式,0表示关闭,1表示左右,2表示上下,3表示中心（180°翻转） 0xff表示不支持*/
}ZW_IPC_BASIC;

/*!
*  @struct	tagZW_IPC_EXPOSURE
*  @brief	IPC曝光配置
 */
typedef struct tagZW_IPC_EXPOSURE
{
	int bValid;			/*!< 本结构体是否有效，0表示无效 */

	BYTE nIrisType;			/*!< 光圈类型, 0,表示手动光圈,1表示自动光圈 0xff表示不支持*/
	int nExposureDelay;		/*!< 曝光时间,0,自动;25,表示1/25;  50,表示1/50;  100,表示1/100; ...*///当是具有车牌相关功能的IPC时，该功能表示车速  /*25表示0-30km/h,100表示30-60km/h,1000表示60-90km/h,2000表示>90km/h*/（使用结构体ZW_SYSCOMMON_NORMAL_CFG的nEnableFlag字段用来标记是否具有车牌标记的功能）
	int nGain;				/*!< 增益, 0表示自动; 其它表示相应增益值,如6表示6dB */
}ZW_IPC_EXPOSURE;

/*!
*  @struct	tagZW_IPC_WHITE_BLANCE
*  @brief	IPC白平衡配置
 */
typedef struct tagZW_IPC_WHITE_BLANCE
{
	int bValid;			/*!< 本结构体是否有效，0表示无效 */

	BYTE nWhiteBlanceMode;	/*!< 白平衡模式,0表示白炽灯,1暖光灯,2日光灯,3自然光,4手动白平衡,5锁定白平衡,6自动白平衡，7室内模式，8.室外模式 ，0xff表示不支持*/
	BYTE nGainRed;			/*!< 当 nWhiteBlanceMode等于6时 有效，范围[0,100] */
	BYTE nGainBlue;			/*!< 当 nWhiteBlanceMode等于6时 有效，范围[0,100] */
}ZW_IPC_WHITE_BLANCE;

/*!
*  @struct	tagZW_IPC_DAY_NIGHT
*  @brief	IPC日夜转换
 */
typedef struct tagZW_IPC_DAY_NIGHT
{
	int bValid;			/*!< 本结构体是否有效，0表示无效 */

	BYTE nMode;			/*!< 0表示自动（外部红外自动控制）, 1白天,2夜晚,3定时 ，4根据亮度自动控制，0xff表示不支持*/

	BYTE nStartHour;		/*!< 当nMode等于3时有效, 夜晚开始小时,范围[0,23] */
	BYTE nStartMin;		/*!< 当nMode等于3时有效, 夜晚开始分钟,范围[0,59] */
	BYTE nStartSec;		/*!< 当nMode等于3时有效, 夜晚开始秒,  范围[0,59] */

	BYTE nStopHour;		/*!< 当nMode等于3时有效, 夜晚结束小时,范围[0,23] */
	BYTE nStopMin;		/*!< 当nMode等于3时有效, 夜晚结束分钟,范围[0,59] */
	BYTE nStopSec;		/*!< 当nMode等于3时有效, 夜晚结束秒,  范围[0,59] */
}ZW_IPC_DAY_NIGHT;

/*!
*  @struct	tagZW_ISP
*  @brief	IPC的ISP配置
 */
typedef struct tagZW_ISP
{
	int bValid;
	ZW_IPC_BASIC		struBasic;
	ZW_IPC_COLOR		struColor;
	ZW_IPC_EXPOSURE		struExposure;
	ZW_IPC_WHITE_BLANCE struWhiteBlance;
	ZW_IPC_DAY_NIGHT	struDayAndNight;
}ZW_IPC_ISP_CONFIG;



/*!
*  @struct	tagZW_IPC_ISP_DEFAULT
*  @brief	IPC的默认ISP配置结构
 */
typedef struct tagZW_IPC_ISP_DEFAULT
{
	int bValid;
}ZW_IPCISP_DEFAULT;




//该结构体仅适用于NVR设备
/*!
*  @struct	tagZW_NVR_COLOR
*  @brief	NVR颜色配置
 */
typedef struct tagZW_NVR_COLOR
{
	int bValid;
	ZW_IPC_COLOR      struColor[DVR_MAX_VIDEOIN_NUM];
}ZW_NVR_COLOR;

/*!
*  @struct	tagZW_NVR_BASIC
*  @brief	NVR基本配置
 */
typedef struct tagZW_NVR_BASIC
{
	int bValid;
	ZW_IPC_BASIC		struBasic[DVR_MAX_VIDEOIN_NUM];
}ZW_NVR_BASIC;

/*!
*  @struct	tagZW_NVR_EXPOSURE
*  @brief	NVR曝光配置
 */
typedef struct tagZW_NVR_EXPOSURE
{
	int bValid;
	ZW_IPC_EXPOSURE		struExposure[DVR_MAX_VIDEOIN_NUM];
}ZW_NVR_EXPOSURE;

/*!
*  @struct	tagZW_NVR_WHITE_BLANCE
*  @brief	NVR白平衡配置
 */
typedef struct tagZW_NVR_WHITE_BLANCE
{
	int bValid;
	ZW_IPC_WHITE_BLANCE struWhiteBlance[DVR_MAX_VIDEOIN_NUM];
}ZW_NVR_WHITE_BLANCE;

/*!
*  @struct	tagZW_NVR_DAY_NIGHT
*  @brief	NVR日夜转换
 */
typedef struct tagZW_NVR_DAY_NIGHT
{
	int bValid;
	ZW_IPC_DAY_NIGHT	struDayAndNight[DVR_MAX_VIDEOIN_NUM];
}ZW_NVR_DAY_NIGHT;

/*!
*  @struct	tagZW_NVR_ISP
*  @brief	NVR的ISP配置
 */
typedef struct tagZW_NVR_ISP
{
	int bValid;
	ZW_IPC_ISP_CONFIG IpcIspConfig[DVR_MAX_VIDEOIN_NUM];
}ZW_NVR_ISP_CONFIG;



typedef struct tagZW_IPC_DAY_NIGHT_VALUE
{
	int	nDay2Night;	   //0--100
	int nNight2Day;	   //0--100
}ZW_IPC_DAY_NIGHT_VALUE;

/*!
*  @struct	tagZW_NVR_ISP
*  @brief	NVR的扩展配置
 */

/*!
*  @struct	tagZW_NVR_ISP
*  @brief	NVR的扩展配置
 */
typedef struct tagZW_IPC_ISP_EX
{
	int bValid;
	ZW_IPC_DAY_NIGHT_VALUE struDayNightValue;
	int nDayNightSensitivity;	    //日夜转化的灵敏度
	unsigned int nDevIspCab;		//表示ISP扩展功能的能力集,参见上面的宏
	int nIRCutModeEnable;		//IRCut模式的使能，1，表示该设备具有IRcut相关的功能，0，表示该设备不具有该功能，该功能包括的字段nPassivitySwitchTime ,nInitactiveSwitchTime	,nPassivityDayNightSensitivity,nInitactiveDayNightSensitivity
	int nPassivitySwitchTime;			//被动模式下的切换时间
	int nInitactiveSwitchTime;			//主动模式下的切换时间
	int nPassivityDayNightSensitivity;  //被动模式下日夜转化的灵敏度
	int nInitactiveDayNightSensitivity;  //主动模式下的灵敏度
	int nSceneEnable;					//场景模式使能0，表示不支持，1，表示支持
	int	nSceneMode;						//场景模式选项为“标准”（值为0）、“柔和”（值为1）、“鲜艳”（值为2）、“自定义”（值为3）
	int nSupportDeFrog;						// 去雾. 0, 表示不支持, 1, 表示支持
	int nDeFrog;							// 当前是启用去雾
	int nSupportCorridor;				// 是否支持走廊模式, 0, 表示不支持, 1, 表示支持
	int nEnableCorridor;				// 是否开启走廊模式，0, 关闭，　1, 开启
	char cReserved1[204];
	char cReserved2[256];
}ZW_IPC_ISP_EX;

/*!
*  @struct	tagZW_NVR_ISP
*  @brief	NVR的扩展配置
 */
typedef struct tagZW_COM_ISP_EX
{
	int bValid;
	ZW_IPC_ISP_EX IpcIspExConfig[DVR_MAX_VIDEOIN_NUM];
}ZW_COM_ISP_EX;




/*!
*  @struct	tagZW_IPC_TONE_RGB2YUV
*  @brief	RGB转YUV调节
*/
typedef struct tagZW_IPC_TONE_RGB2YUV
{
	int bValid;
	int matrix_values[9];// 范围[-1024-1023]
	int y_offset;// 范围［-128-255］
	int u_offset;// 范围［-128-255］
	int v_offset;// 范围［-128-255］
}ZW_IPC_TONE_RGB2YUV,*LP_ZW_IPC_TONE_RGB2YUV;

/*!
*  @struct	tagZW_IPC_TONE_ISP
*  @brief	用户定制图像风格调节
*/
typedef struct tagZW_IPC_TONE_ISP
{
	int bValid;
	ZW_IPC_TONE_RGB2YUV struRGB2YUV;
	char acReserved[1024];
}ZW_IPC_TONE_ISP,*LP_ZW_IPC_TONE_ISP;


/* 区域信息(左上点坐标(ntopx, ntopy)和右下点坐标(nbottomx, nbottomy)，范围均是0--9999 */
typedef struct tagRect
{
	int ntopx;			/* <==>left   <==> x1 */   
	int ntopy;			/* <==>top    <==> y1 */
	int nbottomx;       /* <==>right  <==> x2 */
	int nbottomy;       /* <==>bottom <==> y2 */
}RECT_T, *LPRECT_T;

/** @brief 表示ROI配置信息							 */
typedef struct tagROIChnanel
{
	int         nEnable;
	int 	    nLevel;										
	RECT_T      struArea;
}VIDEONETCLIENT_ROI_CHANNEL, *LPVIDEONETCLIENT_ROI_CHANNEL;

/** @brief 表示每一个码流支持的ROI的情况		      */
typedef struct tagROICfg   
{
	int bValid;
	int nEnable;				    //ROI区域
	VIDEONETCLIENT_ROI_CHANNEL struROIInfo[MAX_ROI_NUM];
}VIDEONETCLIENT_ROI_CFG, *LPVIDEONETCLIENT_ROI_CFG;

/** @brief 表示每一个通道支持的么一个码流的ROI的情况												          	 */
typedef struct tagStreamROIChannel
{
	int bValid;
	int nAreaMin;                           //表示每一个通道支持的最小ROI的区域值
	int nAreaMax;                           //表示每一个通道支持的最大ROI的区域
	VIDEONETCLIENT_ROI_CFG	struMainStream;	//主码流的ROI属性
	VIDEONETCLIENT_ROI_CFG  struSubStream;	//子码流的ROI属性
	VIDEONETCLIENT_ROI_CFG  struReserve[2];	//保留
}VIDEONETCLIENT_STREAM_ROI_CHANNEL, *LPVIDEONETCLIENT_STREAM_ROI_CHANNEL;


/** @brief 表示对于一个设备支持总的ROI情况	 */
typedef struct tagStreamROICfg
{
	int bValid;
	VIDEONETCLIENT_STREAM_ROI_CHANNEL  struStreamRoiChannel[DVR_MAX_VIDEOIN_NUM];		
}VIDEONETCLIENT_STREAM_ROI_CFG, *LPVIDEONETCLIENT_STREAM_ROI_CFG;


///////////////////////////////////////////////////////////////////////////////////////////////////////
/**************************************************************************
*                        配置信息结构体定义                              *
************************************************************************* */
//#define RESERVED_OLD

////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_SCHEDTIME
*  @brief	时间计划, 24小时等分成48个时间段
 */
typedef struct tagVIDEONETCLIENT_SCHEDTIME
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	unsigned char bySetType[DVR_MAX_DAYS][DVR_MAX_TIMESEGMENT];	/*!< 0为不布防，1为布防 */
	unsigned char byState;										/*!< 状态,0为全天布防,1为启用,2为不支持 */
	unsigned char byReserve[3];									/*!< 保留位 */

} VIDEONETCLIENT_SCHEDTIME, *LPVIDEONETCLIENT_SCHEDTIME;

/*!
*  @struct	tagVIDEONETCLIENT_WORKMODE
*  @brief	工作模式
 */
typedef struct tagVIDEONETCLIENT_WORKMODE
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int nWorkMode;												/*!< 高级模式，0为普通模式，1为高级模式 */

} VIDEONETCLIENT_WORKMODE, *LPVIDEONETCLIENT_WORKMODE;

/*!
*  @struct	tagVIDEONETCLIENT_FONT_INFO
*  @brief	字体信息
 */
typedef struct tagVIDEONETCLIENT_FONT_INFO
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	char szFontName[DVR_MAX_FONTNAME_LEN];						/*!< 字体名 */
	int nFontStyle;												/*!< 字体风格 */
	int nFontSize;												/*!< 字体大小 */

} VIDEONETCLIENT_FONT_INFO, *LPVIDEONETCLIENT_FONT_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_ALIAS_CFG_1
*  @brief	别名配置(Unicode)
*/
typedef struct tagVIDEONETCLIENT_ALIAS_CFG_1
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	unsigned short strName[DVR_MAX_CHANNELNAME_LEN];			/*!< 通道名称 */
	int nCharSet;												/*!< 通道名字符集: 0-GB, 1-unicode */
	int nWidth;													/*!< 通道名称完整字符串宽度(以像素为单位)，最大宽度 DVR_MAX_LATTICE_WIDTH */
	int nHeight;												/*!< 通道名称完整字符串高度(以像素为单位)，最大高度 DVR_MAX_LATTICE_HEIGHT */
	unsigned char byLattice[DVR_MAX_LATTICE_BUFSIZE];			/*!< 点阵，按行扫描，宽为(nWidth+7)/8，高为nHeight，目前最大支持10个24*24的点阵 */
	VIDEONETCLIENT_FONT_INFO struFontInfo;								/*!< 通道名字体信息 */

} VIDEONETCLIENT_ALIAS_CFG_1, *LPVIDEONETCLIENT_ALIAS_CFG_1;

//#define RESERVED_NET_OLD
////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_DDNS
*  @brief	DDNS协议信息结构
 */
typedef struct tagVIDEONETCLIENT_DDNS
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bDdnsEnable;											/*!< 0-不启用自动注册, 1-启用自动注册  */
	int nDdnsState;												/*!< 目前DDNS只读，0表示已经停止，1表示正在启动，2表示已经启动，3表示正在停止 */
	char szProtocolName[DVR_MAX_DDNSPRONAME_LEN];				/*!< 协议名称(只读)  */
	char szUserName[DVR_MAX_USERNAME_LEN];						/*!< 注册用户名  */
	char szUserPassword[DVR_MAX_PASSWORD_LEN];					/*!< 注册用户密码  */
	char szDomainName[DVR_MAX_DOMAINNAME_LEN];					/*!< 注册用户域名  */
	unsigned short wRegisterPort;								/*!< 服务端口  */
	int nAutoRegIntervals;										/*!< 自动注册间隔时间，单位为秒  */

} VIDEONETCLIENT_DDNS, *LPVIDEONETCLIENT_DDNS;

/*!
*  @struct	tagVIDEONETCLIENT_DDNS_CONF
*  @brief	DDNS功能配置结构
 */
typedef struct tagVIDEONETCLIENT_DDNS_CONF
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int nDdnsProtocolCount;										/*!< 支持的DDNS协议总数(只读) */
	VIDEONETCLIENT_DDNS struDdnsProtocol[DVR_MAX_DDNSPRO_NUM];			/*!< DDNS协议信息 */
	int bEnable;												// 是否启用DDNS

} VIDEONETCLIENT_DDNS_CONF, *LPVIDEONETCLIENT_DDNS_CONF;

/*!
*  @struct	tagVIDEONETCLIENT_PPPOE_CONF
*  @brief	PPPoE功能配置信息
 */
typedef struct tagVIDEONETCLIENT_PPPOE_CONF
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bPPPoEEnable;											/*!< 0-不启用PPPoE，1-启用 PPPoE  */
	char szPPPoEUser[DVR_MAX_USERNAME_LEN];						/*!< PPPoE用户名  */
	char szPPPoEPassword[DVR_MAX_PASSWORD_LEN];					/*!< PPPoE密码  */

} VIDEONETCLIENT_PPPOE_CONF, *LPVIDEONETCLIENT_PPPOE_CONF;

/*!
*  @struct	tagVIDEONETCLIENT_PPPOE_IF
*  @brief	PPPoE网络信息
 */
typedef struct tagVIDEONETCLIENT_PPPOE_IF
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int nPPPoEState;											/*!< PPPoE 连接状态(只读),0表示没有连接，1表示正在连接，2表示连接成功，3表示正在挂断 */
	char szPPPoEIP[DVR_MAX_IP_STR_LEN];							/*!< PPPoE IP地址(只读)  */
	char szPPPoESubnetMask[DVR_MAX_IP_STR_LEN];					/*!< PPPoE 子网掩码(只读)  */
	char szPPPoEGateway[DVR_MAX_IP_STR_LEN];					/*!< PPPoE 网关(只读)  */

} VIDEONETCLIENT_PPPOE_IF, *LPVIDEONETCLIENT_PPPOE_IF;

/*!
*  @struct	tagVIDEONETCLIENT_DHCP_CONF
*  @brief	DHCP配置信息
 */
typedef struct tagVIDEONETCLIENT_DHCP_CONF
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bDhcpEnable;											/*!< 0-不启用Dhcp,1-启用Dhcp  */

} VIDEONETCLIENT_DHCP_CONF, *LPVIDEONETCLIENT_DHCP_CONF;

/*!
*  @struct	tagVIDEONETCLIENT_DHCP_STATE
*  @brief	DHCP状态信息
 */
typedef struct tagVIDEONETCLIENT_DHCP_STATE
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int nDhcpState;												/*!< Dhcp状态 (只读)，目前不支持 */

} VIDEONETCLIENT_DHCP_STATE, *LPVIDEONETCLIENT_DHCP_STATE;

/*!
*  @struct	tagVIDEONETCLIENT_DNS_CONF
*  @brief	DNS配置信息
 */
typedef struct tagVIDEONETCLIENT_DNS_CONF
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	char szPrimaryDNS[DVR_MAX_IP_STR_LEN];						/*!< 主DNS服务器  */
	char szSecondaryDNS[DVR_MAX_IP_STR_LEN];					/*!< 备用DNS  */

} VIDEONETCLIENT_DNS_CONF, *LPVIDEONETCLIENT_DNS_CONF;

/*!
*  @struct	tagVIDEONETCLIENT_ETH_IF
*  @brief	ETH0配置结构
 */
typedef struct tagVIDEONETCLIENT_ETH_IF
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	char szIPAddress[DVR_MAX_IP_STR_LEN];						/*!< DVR IP地址  */
	char szSubnetMask[DVR_MAX_IP_STR_LEN];						/*!< DVR 子网掩码  */
	char szGateway[DVR_MAX_IP_STR_LEN];							/*!< 网关地址  */
	char szMacAddress[DVR_MAX_MAC_STR_LEN];						/*!< 只读：服务器的物理地址  */

} VIDEONETCLIENT_ETH_IF, *LPVIDEONETCLIENT_ETH_IF;

/*!
*  @struct	tagVIDEONETCLIENT_WLAN_STATE
*  @brief	WIFI状态
*/
typedef struct tagVIDEONETCLIENT_WLAN_STATE
{
	int bValid;												/*!< 本结构体是否有效，0表示无效 */

	int bEnable;											/*!< WIFI状态 0 不启用 1 启用, 2 网卡未找到*/

} VIDEONETCLIENT_WLAN_STATE, *LPVIDEONETCLIENT_WLAN_STATE;

/*!
*  @struct	tagVIDEONETCLIENT_WLAN_ACCESSPOINT
*  @brief	WIFI热点
*/
typedef struct tagVIDEONETCLIENT_WLAN_ACCESSPOINT
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	char szSSID[DVR_MAX_SSID_LEN];									/*!< 热点名称 */
	char szMacAddress[DVR_MAX_MAC_STR_LEN];							/*!< 热点MAC地址 */
	int nSignal;													/*!< 热点信号强度 */
	int nAuthentication;											/*!< 认证模式 0-Open,1-Shared,2-WPAPSK, 3-WPA2PSK, 4-WPANONE(ad-hoc模式),5-WPA,6-WPA2,7,No Password*/
	int nEncrypType;												/*!< 加密模式  0表示NONE 1表示WEP 2表示TKIP 3表示AES */
	int nWirelessMode;												/*!< 1: legacy 11B only 2: legacy 11A only 3: legacy 11a/b/g mixed
																		 4: legacy 11G only 5: 11ABGN mixed    6: 11N only
																		 7: 11GN mixed      8: 11AN mixed      9: 11BGN mixed */

} VIDEONETCLIENT_WLAN_ACCESSPOINT, *LP_VIDEONETCLIENT_WLAN_ACCESSPOINT;

/*!
*  @struct	tagVIDEONETCLIENT_WLAN_ACCESSPOINT_CFG
*  @brief	WIFI热点配置
*/
typedef struct tagVIDEONETCLIENT_WLAN_ACCESSPOINT_CFG
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_WLAN_ACCESSPOINT struAccessPoints[DVR_MAX_AP_NUM];		/*!< WIFI热点 */

} VIDEONETCLIENT_WLAN_ACCESSPOINT_CFG, *LP_VIDEONETCLIENT_WLAN_ACCESSPOINT_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_WLAN_KEY
*  @brief	WIFI密钥
*/
typedef struct tagVIDEONETCLIENT_WLAN_KEY
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	// 密码
	char szKey[DVR_MAX_WIFI_KEY_LEN];

	// 密钥类型 0-表示16进制 1表示字符串类型
	int nKeyType;
} VIDEONETCLIENT_WLAN_KEY, *LPVIDEONETCLIENT_WLAN_KEY;

/*!
*  @struct	tagVIDEONETCLIENT_WLAN_KEY_CFG
*  @brief	WIFI密钥配置
*/
typedef struct tagVIDEONETCLIENT_WLAN_KEY_CFG
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	int nDefKeyID;													/*!< WEP认证当前用的KEY的索引,1~4 */
	VIDEONETCLIENT_WLAN_KEY Key1;											/*!< WEP KEY1 */
	VIDEONETCLIENT_WLAN_KEY Key2;											/*!< WEP KEY2 */
	VIDEONETCLIENT_WLAN_KEY Key3;											/*!< WEP KEY3 */
	VIDEONETCLIENT_WLAN_KEY Key4;											/*!< WEP KEY4 */
	VIDEONETCLIENT_WLAN_KEY WPAKey;											/*!< WPA KEY */
} VIDEONETCLIENT_WLAN_KEY_CFG, *LPVIDEONETCLIENT_WLAN_KEY_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_WLAN_CONNECTION
*  @brief	WIFI连接配置
*/
typedef struct tagVIDEONETCLIENT_WLAN_CONNECTION
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	int bConnect;													/*!< 是否连接上：0表示未连接上 1表示连接上(只读) */
	char szSSID[DVR_MAX_SSID_LEN];									/*!< 热点名称 */
	char szMacAddress[DVR_MAX_MAC_STR_LEN];							/*!< 热点MAC地址 */
	int nNetworkType;												/*!< 网络类型: 0表示Managed, 1表示Ad-hoc */
	int nAuthMode;													/*!< 认证模式: 0-OPEN,1-SHARED,2-WEPAUTO,3-WPAPSK,4-WPA2PSK,5-WPANONE,6-WPA,7-WPA2,8.No Password*/
	int nEncrypType;												/*!< 加密算法 0-NONE,1-WEP,2-TKIP,3-AES */
	VIDEONETCLIENT_WLAN_KEY_CFG struKeyCfg;									/*!< 密码配置 */

} VIDEONETCLIENT_WLAN_CONNECTION, *LP_VIDEONETCLIENT_WLAN_CONNECTION;

/*!
*  @struct	tagVIDEONETCLIENT_UPNP_CONF
*  @brief	UPNP配置
*/
typedef struct
{
	int bValid;														/*!< 本结构体是否有效，0表示无效	*/

	int bEnable;													/*!< UPNP控制 0 不启用 1 启用		*/
	char szWanAddress[DVR_MAX_IP_STR_LEN];							/*!< 出口地址(只读)					*/
	int nLocalHttpPort;												/*!< 本地HTTP端口					*/
	int nExportHttpPort;											/*!< 出口HTTP端口					*/
	int nHttpPortState;												/*!< HTTP状态 0 成功 1 失败 2 映射中*/
	int nLocalMobilePort;											/*!< 本地手机端口					*/
	int nExportMobilePort;											/*!< 出口手机端口					*/
	int nMobilePortState;											/*!< 手机状态 0 成功 1 失败 2 映射中*/
	int nLocalCommandPort;											/*!< 本地信令端口					*/
	int nExportCommandPort;											/*!< 出口信令端口					*/
	int nCommandPortState;											/*!< 信令状态 0 成功 1 失败 2 映射中*/
	int nLocalMediaPort;											/*!< 本地媒体端口					*/
	int nExportMediaPort;											/*!< 出口媒体端口					*/
	int nMediaPortState;											/*!< 媒体状态 0 成功 1 失败 2 映射中*/
	int nReserve[8];												/*!< 保留							*/
} VIDEONETCLIENT_UPNP_CONF, *LPVIDEONETCLIENT_UPNP_CONF;

////////////////////////////////////////////////////////////////////////////


/*!
*  @struct	tagVIDEONETCLIENT_FTP_CONF
*  @brief	FTP配置
*/
typedef struct
{
	int bValid;														/*!< 本结构体是否有效，0表示无效	*/

	int bEnable;													/*!< FTP控制 0 不启用 1 启用		*/
	char szUserName[DVR_MAX_USERNAME_LEN];						/*!< FTP用户名  */
	char szUserPassword[DVR_MAX_PASSWORD_LEN];					/*!< FTP用户密码  */
	char szIPAddress[DVR_MAX_IP_STR_LEN];					/*!< FTP服务器IP  */
	unsigned short wFtpPort;								/*!< FTP服务端口  */
	char cReserve[2];										/*!< 保留字段*/
	int iFtpState;											/*!< FTP 状态  0表示没有连接，1表示正在连接，2表示连接成功*/
	char dwReserve[256];										/*!< 保留字段*/

}VIDEONETCLIENT_FTP_CONF,*LPVIDEONETCLIENT_FTP_CONF;


// 系统配置——网络配置——基本配置
// 虽然将IP地址换成数字表示的地址，节省传输带宽并不明显
typedef enum 
{
	eNetworkCardType_10M,
	eNetworkCardType_100M,
	eNetworkCardType_1000M,
}eZWNetworkCardType;
typedef struct tagZW_SYS_NET_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	eZWNetworkCardType dwNetworkCardType;		// 网络类型
	DWORD dwEnableDHCP;						// 是否启用DHCP

	DWORD dwIPAddress;						/*!< DVR IP地址  */
	DWORD dwSubnetMask;						/*!< DVR 子网掩码  */
	DWORD dwGateway;							/*!< 网关地址  */
	char szMacAddress[DVR_MAX_MAC_STR_LEN];			/*!< 只读：服务器的物理地址  */

	DWORD bAutoObtainDNS;					// 是否自动获取DNS
	DWORD dwPrimaryDNS;						// 主DNS
	DWORD dwSecondaryDNS;					// 次DNS

	unsigned short dwHTTPPort;											// HTTP服务器端口
	unsigned short dwCommandPort;											// 私有协议命令端口
	unsigned short dwMediaPort;											// 私有协议媒体端口
	unsigned short dwMobilePort;											// 私有协议手机端口
	unsigned short dwRtpPort;											//RTP端口
    unsigned short wAutoDetectPort;                            //自动探测端口

	DWORD  dwDHCPStatus;
	//要注意，下面的提供的2种P2P服务，设备同时刻仅支持下面的一种P2P服务
	//TUTK P2P
	char acTutkUID[32];											// 当前设备的TUTK UID
	char bTutkEnable;										// 是否启用TUTK服务
	char acReserved_1[3];
	DWORD dwTutkStatus;								 // 0x0，未联机，0x01，内网就绪，0x02, 外网就绪        // add by hdd 20140226
	//悠落客P2P
	char bUlucoP2PEnable;									//是否支持悠落客P2P	
	char acReserved_2[3];
	char acUlucoP2PDID[32];									//当前设备的悠落客P2P的UID
	int dwUlucoP2PStatus;									//设备上线状态，0,offline,1,Device is Online,-1,Register failed

	char bEnableAutoGenIP;									// 是否开启自动生成IP地址机制．ONVIF协议/私有协议探测时会将自已修改成与探测者一样网段的IP.0,不启用. 1,启用.
	char	acReserved[175];									// 保留(方便日后扩展)
}ZW_SYS_NET_CFG, *LPZW_SYS_NET_CFG;

#define ZW_NET_CFG_LEN  sizeof(ZW_SYS_NET_CFG)

/*!
*  @struct	tagVIDEONETCLIENT_NET_EML_1
*  @brief	Email服务器配置信息(1.1.0版本使用)
*/
typedef struct	tagVIDEONETCLIENT_NET_EML_1
{
	int bValid;													/*!< 本结构体是否有效，0表示无效		*/
	int bEmlEnable;												/*!< 0-不启用, 1-启用					*/

	char szSmtpServer[DVR_MAX_DOMAINNAME_LEN];					/*!< smtp服务器地址						*/
	unsigned short wSmtpPort;									/*!< 端口								*/
	int nSmtpAuth;												/*!< 验证方式(0为NONE, 1为LOGIN)		*/
	int nSmtpTLS;												/*!< 是否使用安全登陆(0为off, 1为on)	*/

	char szSenderEmail[DVR_MAX_EMAIL_LEN];						/*!< 发件人邮箱地址						*/
	char szSenderPassword[DVR_MAX_PASSWORD_LEN];				/*!< 发件人邮箱密码						*/

	char szReceiverAddress_1[DVR_MAX_EMAIL_LEN];
	char szReceiverAddress_2[DVR_MAX_EMAIL_LEN];
	char szReceiverAddress_3[DVR_MAX_EMAIL_LEN];
	char szReceiverAddress_4[DVR_MAX_EMAIL_LEN];
	char szReceiverAddress_5[DVR_MAX_EMAIL_LEN];

	int  nWithSnapshot;											// 是否附带抓图

	//以下参数暂不使用
	int nProtocol;												/*!< (目前为smtp)						*/
	int nTimeout;												/*!< 超时配置							*/
	int nAuto_from;

	//以下为TLS相关高级参数，暂不使用
	int nTls_starttls;
	int nTls_certcheck;
	int nTls_force_sslv3;
	int nTls_min_dh_prime_bits;
	int nTls_priorities;

} VIDEONETCLIENT_NET_EML_1, *LPVIDEONETCLIENT_NET_EML_1;

/*!
*  @struct	tagVIDEONETCLIENT_NET_CFG
*  @brief	本地网络适配器配置结构
 */
typedef struct tagVIDEONETCLIENT_NET_CFG
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */


	VIDEONETCLIENT_PPPOE_CONF struPPPoE_Conf;							/*!< PPPoE配置 */
	VIDEONETCLIENT_PPPOE_IF struPPPoE_IF;								/*!< PPPoE网络信息 */
	VIDEONETCLIENT_DDNS_CONF struDDNS;									/*!< DDNS配置信息 */
	VIDEONETCLIENT_DHCP_CONF struWIFIDhcp_Conf;							/*!< WIFI DHCP配置 */
	VIDEONETCLIENT_DHCP_STATE struWIFIDhcp_State;						/*!< WIFI Dhcp状态信息 */
	VIDEONETCLIENT_ETH_IF struWIFICommon;								/*!< WIFI 网络信息 */
	VIDEONETCLIENT_DNS_CONF struWIFIDNS;								/*!< WIFI DNS配置信息 */
	VIDEONETCLIENT_WLAN_ACCESSPOINT_CFG struWIFIAccessPoint;			/*!< WIFI热点配置 */
	VIDEONETCLIENT_WLAN_CONNECTION struWIFIConnectCfg;					/*!< WIFI连接配置 */
	VIDEONETCLIENT_WLAN_STATE struWIFIState;							/*!< WIFI 状态 */
	VIDEONETCLIENT_UPNP_CONF	struUPNPConf;							/*!< UPNP配置信息				*/

	ZW_SYS_NET_CFG struBasicNetCfg;	// 基本网络配置结构体,设备端应新响应这个配置
	VIDEONETCLIENT_NET_EML_1 struEmlCfg;
} VIDEONETCLIENT_NET_CFG, *LPVIDEONETCLIENT_NET_CFG;

/** @brief 本地网络适配器配置结构长度																		 */
#define NET_CFG_LEN   sizeof (VIDEONETCLIENT_NET_CFG)
////////////////////////////////////////////////////////////////////////////
//设备支持的网络协议宏
//
#define HY_DVR_NETWORK_PROTOCOL_HYPRIVATE	0x01	//TUTK
#define HY_DVR_NETWORK_PROTOCOL_TIDEMOBILE	0x02	//悠落客
#define HY_DVR_NETWORK_PROTOCOL_MEGAEYES	0x04
#define HY_DVR_NETWORK_PROTOCOL_RTSP	0x08
#define HY_DVR_NETWORK_PROTOCOL_ONVIF	0x10
#define HY_DVR_NETWORK_PROTOCOL_TUTK	0x20
#define HY_DVR_NETWORK_PROTOCOL_JSTP	0x40
#define HY_DVR_NETWORK_PROTOCOL_CGI		0x80


typedef struct tagVIDEONETCLIENT_NET_EML_1_EX
{
	int bValid;
   VIDEONETCLIENT_SCHEDTIME struEmlSechedTime;
   char cReserve[256];
}VIDEONETCLIENT_NET_EML_1_EX,*LPVIDEONETCLIENT_NET_EML_1_EX;
/*!
*  @struct	tagVIDEONETCLIENT_NET_CFG_EX
*  @brief	本地网络适配器配置结构
 */
typedef struct tagVIDEONETCLIENT_NET_CFG_EX
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_NET_EML_1_EX struEmlCfgEx;
	DWORD dwIsSupportWifi;										/*!<0，表示不支持wifi，1，表示支持wifi */
	DWORD dwNetworkCardSelect;									/*!<0，表示选择了有线网卡，1，表示选择wifi */
	DWORD dwNetworkWifiDNSEnable;								/*!<0，表示不使能wifi，1，表示使能wifi */
	DWORD dwNetworkProtocolSupport;								/*!<设备是否支持网络协议掩码，0，表示不支持，1，表示支持 */
	DWORD dwNetworkProtocolMask;								/*!<设备支持的网络协议 */
	char cReserve[2028];										/*!< 保留*/
} VIDEONETCLIENT_NET_CFG_EX, *LPVIDEONETCLIENT_NET_CFG_EX;

/** @brief 本地网络适配器配置结构长度																		 */
#define NET_CFG_EX_LEN   sizeof (VIDEONETCLIENT_NET_CFG_EX)



////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_NET_CMS
*  @brief	中心管理服务器配置信息
 */
typedef struct tagVIDEONETCLIENT_NET_CMS
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bCmsEnable;												/*!< 0-不启用管理服务器, 1-启用  */
	char szManageHostAddress[DVR_MAX_DOMAINNAME_LEN];			/*!< 远程管理主机地址，长度考虑域名  */
	unsigned short wManageHostPort;								/*!< 远程管理主机端口  */
	int nAutoRegIntervals;										/*!< 注册间隔时间，单位为秒  */

} VIDEONETCLIENT_NET_CMS, *LPVIDEONETCLIENT_NET_CMS;

/*!
*  @struct	tagVIDEONETCLIENT_CMS_STATE
*  @brief	中心管理服务器连接状态
 */
typedef struct tagVIDEONETCLIENT_CMS_STATE
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int nCmsState;												/*!< CMS注册状态,目前系统不支持  */

} VIDEONETCLIENT_CMS_STATE, *LPVIDEONETCLIENT_CMS_STATE;

/*!
*  @struct	tagVIDEONETCLIENT_NET_AMS
*  @brief	报警管理服务器配置信息
 */
typedef struct tagVIDEONETCLIENT_NET_AMS
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bAmsEnable;												/*!< 0-不启用报警服务器, 1-启用  */
	char szAlarmHostAddress[DVR_MAX_DOMAINNAME_LEN];			/*!< 报警服务器 */
	unsigned short wAlarmHostPort;								/*!< 报警服务器端口  */

} VIDEONETCLIENT_NET_AMS, *LPVIDEONETCLIENT_NET_AMS;

/*!
*  @struct	tagVIDEONETCLIENT_NET_NTP
*  @brief	Ntp服务器配置信息
 */
typedef struct tagVIDEONETCLIENT_NET_NTP
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bNtpEnable;												/*!< 0-不启用, 1-启用  */
	char szNtpHostAddress[DVR_MAX_DOMAINNAME_LEN];				/*!< Ntp服务器，长度考虑域名  */
	unsigned short wNtpHostPort;								/*!< Ntp服务器，端口  */
	int nAutoRegIntervals;										/*!< Ntp服务器同步间隔时间，单位为秒  */

} VIDEONETCLIENT_NET_NTP, *LPVIDEONETCLIENT_NET_NTP;

/*!
*  @struct	tagVIDEONETCLIENT_CMS_FOR_PROTOCOL
*  @brief	CMS对应的协议名称
*/
typedef struct tagVIDEONETCLIENT_CMS_FOR_PROTOCOL
{
	int bValid;											//本结构体是否有效，=0表示无效

	DWORD dwCMSProtocol;								/*!< 协议名称：在CMS中需要填写IP地址，需要告诉设备端，这个
														CMS中的IP地址是为哪一个协议准备的，如果是私有协议，那么设备
														将注册到NVMS中；如果是Hxht协议，则设备注册到Hxht的接入服务器中。
														该参数只能表示一种协议。*/
}VIDEONETCLIENT_CMS_FOR_PROTOCOL, *LPVIDEONETCLIENT_CMS_FOR_PROTOCOL;

////////////////////////////////////////////////////////////////////////////
/*!
*  @struct	tagVIDEONETCLIENT_NET_MANAGER
*  @brief	网络管理结构
 */
typedef struct tagVIDEONETCLIENT_NET_MANAGER
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_NET_CMS struCMS;										/*!< 中心管理服务器信息 */
	VIDEONETCLIENT_NET_AMS struAMS;										/*!< 报警服务器信息 */
	VIDEONETCLIENT_CMS_FOR_PROTOCOL struCMSForProtocol;					/*!< 中心管理服务器信息对应的协议（和CMS是绑定的）*/
	VIDEONETCLIENT_CMS_STATE struCmsState;								/*!< 中心管理服务器连接状态 */
} VIDEONETCLIENT_NET_MANAGER, *LPVIDEONETCLIENT_NET_MANAGER;

/** @brief 网络管理结构长度																				 */
#define NET_MANAGER_LEN   sizeof (VIDEONETCLIENT_NET_MANAGER)
////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////
//#define RESERVED_PIC_OLD
/*!
*  @struct	tagVIDEONETCLIENT_CHROMA_SEC
*  @brief	色度单元配置结构
 */
typedef struct tagVIDEONETCLIENT_CHROMA_SEC
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bTimeSegEnable;											/*!< 启用时间片  */
	int nStartTime;												/*!< 开始时间 相对00:00时的秒数   */
	int nStopTime;												/*!< 结束时间 相对00:00时的秒数   */
	BYTE cBrightness;											/*!< 亮度,0-255  */
	BYTE cReserve1[3];											
	BYTE cContrast;												/*!< 对比度,0-255  */
	BYTE cReserve2[3];											
	BYTE cSaturation;											/*!< 饱和度,0-255  */
	BYTE cReserve3[3];											
	BYTE cHue;													/*!< 色调,0-255  */
	BYTE cHSharpness;											/*!< 水平锐度,0-255  */
	BYTE cVSharpness;											/*!< 垂直锐度,0-255  */
	BYTE cReserve4[1];

} VIDEONETCLIENT_CHROMA_SEC, *LPVIDEONETCLIENT_CHROMA_SEC;

/*!
*  @struct	tagVIDEONETCLIENT_CHROMA_SEC
*  @brief	色度配置结构(每通道支持24个时间段)
 */
typedef struct tagVIDEONETCLIENT_CHROMA
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_CHROMA_SEC struChromaSec[DVR_MAX_PICSEC_NUM];		/*!< 色度单元 */

} VIDEONETCLIENT_CHROMA, *LPVIDEONETCLIENT_CHROMA;


/*异常处理方式 */

/** @brief 无响应																				 */
#define DVR_ALARM_TRIGGER_NONE			0

/** @brief 触发屏幕显示，通道参数由录像参数决定													 */
#define DVR_ALARM_TRIGGER_PREVIEW		(0x1)

/** @brief 声音警告																				 */
#define DVR_ALARM_TRIGGER_AUDIOOUT		(0x1 << 1)

/** @brief 触发录像																				 */
#define DVR_ALARM_TRIGGER_RECORD		(0x1 << 2)

/** @brief 触发拍照																				 */
#define DVR_ALARM_TRIGGER_SNAPSHOT		(0x1 << 3)

/** @brief 触发报警输出																			 */
#define DVR_ALARM_TRIGGER_ALARMOUT		(0x1 << 4)

/** @brief 上传报警中心																			 */
#define DVR_ALARM_TRIGGER_NOTIFYAMS		(0x1 << 5)

/** @brief 触发PTZ																				 */
#define DVR_ALARM_TRIGGER_PTZ			(0x1 << 6)

/** @brief 发生EMail通知																		 */
#define DVR_ALARM_TRIGGER_EMAIL			(0x1 << 7)

/** @brief 屏幕提示																				 */
#define DVR_ALARM_TRIGGER_NOTIFYGUI		(0x1 << 8)

/** @brief BNC大画面屏幕报警																				 */
#define DVR_ALARM_TRIGGER_BNC			(0x1 << 9)


/*!
*  @struct	tagVIDEONETCLIENT_HANDLEEXCEPTION
*  @brief	联动处理结构体
 */
typedef struct tagVIDEONETCLIENT_HANDLEEXCEPTION
{
	int bValid;													/*!< 本结构体是否有效，0表示无效  */

	DWORD dwHandleType;									/*!< 处理方式,处理方式的"或"结果  */
	int nRecordChannelMask;										/*!< 联动录像通道标识，按位表示，若位0为1，表示通道1被选中，以此类推  */
	int nSnapshotChannelMask;									/*!< 联动快照通道标识，按位表示，若位0为1，表示通道1被选中，以此类推  */
	int nAlarmOutChannelMask;									/*!< 联动报警输出通道标识，按位表示，若位0为1，表示通道1被选中，以此类推  */

	// HDD 以下两个成员改成字符形式，以便于使用单字符串传输，可以大量减少数据量，针对此应用而言，256的范围也足够了。
	unsigned char szPtzAction[DVR_MAX_PTZ_NUM];							/*!< 联动的动作,  0表示无动作 , 1联动预置点, 2联动巡航 3联动轨迹  */
	unsigned char szPtzIndex[DVR_MAX_PTZ_NUM];								/*!< 联动的预置点/巡航/轨迹的编号  */
	int nMonitorMask;											/*!< 0-不在显示器上显示 1-主显 2-SPOT1 4-SPOT2 8-SPOT3 16-SPOT4，若需要多种组合，将这些值相加即可 */

} VIDEONETCLIENT_HANDLEEXCEPTION, *LPVIDEONETCLIENT_HANDLEEXCEPTION;

typedef struct tagVIDEONETCLIENT_PTZ_HANDLE_CHANNEL
{
	int nValid;
	unsigned int nPTZChannelID;		/*!<表示联动处理的通道号，同时最多支持32路的联动*/
	unsigned int nPtzAction;							/*!< 联动的动作,  0表示无动作 , 1联动预置点, 2联动巡航 3联动轨迹  */
	unsigned int nPtzIndex;								/*!< 联动的预置点/巡航/轨迹的编号  */
}VIDEONETCLIENT_PTZ_HANDLE_CHANNEL;

/*!
*  @struct	tagVIDEONETCLIENT_HANDLEEXCEPTION_MULTICHANNEL
*  @brief	联动处理结构体,支持设置超过32个通道以上的配置
 */
typedef struct tagVIDEONETCLIENT_HANDLEEXCEPTION_MULTICHANNEL
{
	int bValid;							/*!< 本结构体是否有效，0表示无效  */

	DWORD dwHandleType;			/*!< 处理方式,处理方式的"或"结果  */
	int nRecordChannelMask[32];			/*!< 联动录像通道标识，按位表示，每个数组成员表示1个32通道，若位0为1，表示通道1被选中，以此类推  */
	int nSnapshotChannelMask[32];		/*!< 联动快照通道标识，按位表示，每个数组成员表示1个32通道，若位0为1，表示通道1被选中，以此类推  */
	int nAlarmOutChannelMask[32];		/*!< 联动报警输出通道标识，每个数组成员表示1个32通道，按位表示，若位0为1，表示通道1被选中，以此类推  */
	
	VIDEONETCLIENT_PTZ_HANDLE_CHANNEL struPtzHandle[DVR_MAX_PTZ_NUM];

	int nMonitorMask[32];				/*!< 0-不在显示器上显示 1-主显 2-SPOT1 4-SPOT2 8-SPOT3 16-SPOT4，若需要多种组合，将这些值相加即可 */

} VIDEONETCLIENT_HANDLEEXCEPTION_MULTICHANNEL, *LPVIDEONETCLIENT_HANDLEEXCEPTION_MULTICHANNEL;

/*!
*  @struct	tagVIDEONETCLIENT_MOTION
*  @brief	移动侦测
 */
typedef struct tagVIDEONETCLIENT_MOTION
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	int bEnable;																	/*!< 是否处理移动侦测  */
	int nSenstive;																	/*!< 移动侦测灵敏度, 0 - 5,越低越灵敏,0xff关闭  */
	int nXMaxScope;// HDD,由设备端告诉客户端支持多大的范围，就不用去猜了。
	int nYMaxScope;// HDD,同上
	int nXScope;																	/*!< X方向宏块范围：0-32（目前9000设备支持0-16）  */
	int nYScope;																	/*!< Y方向宏块范围：0-32（目前9000设备支持0-12）*/
	// HDD 数据组大小有改动，注意在序列化时可以改为位压缩的字符串传输
	unsigned char byMotionScope[DVR_MAX_MOTIONSCOPE_NUM][DVR_MAX_MOTIONSCOPE_NUM];	/*!< 侦测区域,1表示改宏块是移动侦测区域,0表示不是  */
	VIDEONETCLIENT_HANDLEEXCEPTION struHandleType;											/*!< 处理方式  */
	VIDEONETCLIENT_SCHEDTIME struSchedTime;													/*!< 布防计划  */

} VIDEONETCLIENT_MOTION, *LPVIDEONETCLIENT_MOTION;

/*!
*  @struct	tagVIDEONETCLIENT_VILOST
*  @brief	信号丢失报警
 */
typedef struct tagVIDEONETCLIENT_VILOST
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bEnable;												/*!< 是否处理信号丢失报警  */
	VIDEONETCLIENT_HANDLEEXCEPTION struHandleType;						/*!< 处理方式  */
	VIDEONETCLIENT_SCHEDTIME struSchedTime;								/*!< 布防计划  */

} VIDEONETCLIENT_VILOST, *LPVIDEONETCLIENT_VILOST;

/*!
*  @struct	tagVIDEONETCLIENT_MOSAIC_INFO
*  @brief	马赛克区域信息
 */
typedef struct tagVIDEONETCLIENT_MOSAIC_INFO
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bEnable;												/*!< 是否启用  */
	int nHideAreaTopLeftX;										/*!< 马赛克区域的左上点x相对坐标（0-703）  */
	int nHideAreaTopLeftY;										/*!< 马赛克区域的左上点y相对坐标（0-575）  */
	int nHideAreaBottomRightX;									/*!< 马赛克区域的右下点x相对坐标（0-703）  */
	int nHideAreaBottomRightY;									/*!< 马赛克区域的右下点y相对坐标（0-575）  */

} VIDEONETCLIENT_MOSAIC_INFO, *LPVIDEONETCLIENT_MOSAIC_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_MOSAIC
*  @brief	马赛克配置信息
 */
typedef struct tagVIDEONETCLIENT_MOSAIC
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bEnableMosaic;											/*!< 是否启动遮挡 ,0-否,1-是 区域为704*576  */
	DWORD dwVirtualWidth;										// 比如19200 HDD,新增
	DWORD dwVirtualHeight;										// 比如10800 HDD,新增
	VIDEONETCLIENT_MOSAIC_INFO struMosaicInfo[DVR_MAX_VIDEOSHELTER_NUM];/*!< 马赛克区域 */

} VIDEONETCLIENT_MOSAIC, *LPVIDEONETCLIENT_MOSAIC;

/*!
*  @struct	tagVIDEONETCLIENT_OSD_CFG
*  @brief	OSD配置信息
 */
typedef struct tagVIDEONETCLIENT_OSD_CFG
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int nShowOsd;												/*!< 0为通道时间均不显示、1为显示通道，2、为显示时间、3为两者均显示  */
	int nTimeTopLeftX;											/*!< 时间的x坐标（0-703）  */
	int nTimeTopLeftY;											/*!< 时间的y坐标（0-575）  */
	int nNameTopLeftX;											/*!< 名称的x坐标（0-703）  */
	int nNameTopLeftY;											/*!< 名称的y坐标（0-575）  */

	// HDD 新增，动态表明坐标的范围
	DWORD dwVirtualWidth;										// 比如19200 HDD,新增
	DWORD dwVirtualHeight;										// 比如10800 HDD,新增
} VIDEONETCLIENT_OSD_CFG, *LPVIDEONETCLIENT_OSD_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_OSD_CFG
*  @brief	图像参数结构
 */
typedef struct tagVIDEONETCLIENT_PIC_CFG
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_WORKMODE struWorkMode;								/*!< 工作模式(只读) */
	VIDEONETCLIENT_OSD_CFG struOsd[DVR_MAX_VIDEOIN_NUM];				/*!< OSD配置 */
	VIDEONETCLIENT_CHROMA struChroma[DVR_MAX_VIDEOIN_NUM];				/*!< 色度配置 */
	VIDEONETCLIENT_VILOST struViLost[DVR_MAX_VIDEOIN_NUM];				/*!< 信号丢失报警 */
	VIDEONETCLIENT_MOTION struMotion[DVR_MAX_VIDEOIN_NUM];				/*!< 移动侦测 */
	VIDEONETCLIENT_MOSAIC struMosaic[DVR_MAX_VIDEOIN_NUM];				/*!< 马赛克 */
	VIDEONETCLIENT_ALIAS_CFG_1 struChName_1[DVR_MAX_VIDEOIN_NUM];		/*!< 通道别名配置(Unicode) */

} VIDEONETCLIENT_PIC_CFG, *LPVIDEONETCLIENT_PIC_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_EVENT_ACTION_CFG
*  @brief	事件联动配置(包括移动侦测，视频丢失，报警输入等事件都将用到本结构体)
*  @ref     ALARMCFG_ACTION_MULTICHANNEL_CONF(报警输入事件联动配置子命令)
*  @ref     PICCFG_MOTION_ACTION_CONF(移动侦测事件联动配置子命令)
*  @ref     PICCFG_VLOSTS_ACTION_CONF(视频丢失事件联动配置子命令)
 */
typedef struct tagVIDEONETCLIENT_EVENT_ACTION_CFG
{
	int bValid;
	VIDEONETCLIENT_HANDLEEXCEPTION_MULTICHANNEL struAction[DVR_MAX_VIDEOIN_NUM];
}VIDEONETCLIET_EVENT_ACTION;

typedef struct tagVideoNetClient_Shelter_Cfg
{
	int bValid;

	int nEnable;															/*!< 是否启用遮挡检测, 0表示不启用，1表示启用 */
	VIDEONETCLIENT_MOSAIC_INFO struShelterArea[DVR_MAX_VIDEOSHELTER_NUM];	/*!< 遮挡区域设置 */
	VIDEONETCLIENT_SCHEDTIME struSchedTime;									/*!< 布防计划  */
}VIDEONETCLIENT_SHELTER_CHANNEL;

// 有关视频通道的高级参数
// 本结构体使用说明:
// 主命令: VIDEONETCLIENT_GET_PICCFG和VIDEONETCLIENT_SET_PICCFG
// 子命令: PICCFG_ADVANCED_CONF.
typedef struct tagVIDEONETCLIENT_SHELTER_CFG
{
	int bValid;
	
	int nVideoCodecModeNormal[DVR_MAX_VIDEOIN_NUM];				/*!< 当前普通录像编码类型, 数组成员值: 0,表示H264, 1表示H265 */
	int nVideoCodecModeEvent[DVR_MAX_VIDEOIN_NUM];				/*!< 当前事件录像编码类型, 数组成员值: 0,表示H264, 1表示H265 */
	int nVideoCodecModeVGANet[DVR_MAX_VIDEOIN_NUM];				/*!< 当前子码流编码类型, 数组成员值: 0,表示H264, 1表示H265 */
	int nVideoCodecModeNet[DVR_MAX_VIDEOIN_NUM];				/*!< 当前第三子码流编码类型, 数组成员值: 0,表示H264, 1表示H265 */

	//int nEnableCorridorMode[DVR_MAX_VIDEOIN_NUM];			/*!< 是否启用走廊模式, 数组成员值: 0表示未启用,1表示已启用 */

	VIDEONETCLIENT_SHELTER_CHANNEL struShelter[DVR_MAX_VIDEOIN_NUM];		/*!< 所有通道的视频遮挡配置  */
	
	int acReserved1[DVR_MAX_VIDEOIN_NUM];
	int acReserved2[DVR_MAX_VIDEOIN_NUM];
	int acReserved3[DVR_MAX_VIDEOIN_NUM];
	int acReserved4[DVR_MAX_VIDEOIN_NUM];
}VIDEONETCLIENT_ADVANCED_CHANNEL_CFG;

/** @brief 图像配置信息长度																	 */
#define PIC_CFG_LEN   sizeof (VIDEONETCLIENT_PIC_CFG)
/////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////

/* NXP8850 Image Sensor Processing配置信息: 数字降噪 （De-Noise）*/
typedef struct tagVIDEONETCLIENT_ISP_COMMON
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	/*
	   参数模板配置 :
	   意义： 通过环境条件的不同进行不同参数脚本的调节
	   0    普通 
	   1    室内 
	   2 室内低亮度 
	   3 室外
	   4 出入口
	   5 自定义
	   6，7 待定
	 */
	int nWorkMode;

	/*
	   图像颜色 （Video Color）
	   0    黑白
	   1    彩色  
	 */
	int nVideoColor;

	/*
	   图像方向 (Video orientation)
	   0    正常
	   1    翻转      
	   2    镜像
	   3    翻转+ 镜像
	 */
	int nVideoOrientation;

	/*
	前端输入频率
	0    50Hz
	1    60Hz
	*/
	int nInputFrequency;

} VIDEONETCLIENT_ISP_COMMON, *LPVIDEONETCLIENT_ISP_COMMON;

/* NXP8850 Image Sensor Processing配置信息: AE Mode 设置*/
typedef struct tagVIDEONETCLIENT_AE_MODE
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	int nMode;					//AE模式，0-自动 1-背光 2-手动

}VIDEONETCLIENT_AE_MODE, *LPVIDEONETCLIENT_AE_MODE;

/* NXP8850 Image Sensor Processing配置信息: AE Window 设置*/
typedef struct tagVIDEONETCLIENT_AEWINDOW_CFG
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	//开关(on /off)
	int bOpen;

	//X (0-4095) 需要识别到最大的宽度，如果是最大720p,就是1280
	int nX;

	//Y (0-4095) 需要识别最大有效像素高度
	int nY;

	//width (1-4095) 需要识别到最大的宽度
	int nWidth;

	//height(1-4095) 需要识别最大有效像素高度
	int nHeight;

	//Weighting (1X 到 8X可选) 参数0-7
	int nWeighting;
	
} VIDEONETCLIENT_AEWINDOW_CFG, *LPVIDEONETCLIENT_AEWINDOW_CFG;

/* NXP8850 Image Sensor Processing配置信息: 曝光参数*/
typedef struct tagVIDEONETCLIENT_EXPOSAL_CFG
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	/*
		镜头光圈：(Lens Type)
		关闭自动自动  开启启动光圈   手动光圈
	*/
	int bLensType;

	/*
		目标亮度  (Target Lumiance)	0-255
	*/
	int nTargetLumiance;

	/*
		偏移 (Offset)	0-255
	*/
	int nOffset;

	/*
		快门速度  (Shutter Speed)
		最小速度，0～1/2
		最大速度，1/120～1
		速度可选
		0,1/120,1/60,1/30,1/15,1/8,1/4,1/2,1 
	*/
	int nMinShutterSpeed;
	int nMaxShutterSpeed;

	/*
		增益系数 (Gain)
		最小增益 1x ~ 16x 
		最大增益 2x ~ 32x
	*/
	int nMinAutoGain;
	int nMaxAutoGain;
	
} VIDEONETCLIENT_EXPOSAL_CFG, *LPVIDEONETCLIENT_EXPOSAL_CFG;

/* NXP8850 Image Sensor Processing配置信息: 白平衡 (White Balance)*/
typedef struct tagVIDEONETCLIENT_WHITEBALANCE_CFG
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	/*
		1 自动
		2 手动： 手动 需要修改 RED Gain (0-255),Blue Gain(0-255)
		3 多云
		4 太阳
		5 阴天
		6 冷白荧光灯
	*/
	int bWorkMode;

	int nRedGain[DVR_MAX_ISP_WHITEBALANCE];

	int nBlueGain[DVR_MAX_ISP_WHITEBALANCE];

} VIDEONETCLIENT_WHITEBALANCE_CFG, *LPVIDEONETCLIENT_WHITEBALANCE_CFG;

/* NXP8850 Image Sensor Processing配置信息: 数字降噪 （De-Noise）*/
typedef struct tagVIDEONETCLIENT_DENOISE_CFG
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	/*
		关闭
		开启： Y  Strength （0-255）
				   Cb strength (0-255)
				   Cr strength (0-255)
	*/
	int bWorkMode;

	int nYStrength;

	int nCbStrength;

	int nCrStrength;

} VIDEONETCLIENT_DENOISE_CFG, *LPVIDEONETCLIENT_DENOISE_CFG;

/* NXP8850 Image Sensor Processing配置信息*/
typedef struct tagVIDEONETCLIENT_ISP_TEMPLATE
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	/*
	AE 模式，为手动模式时，AE Window设置配置才是有效的
	*/
	VIDEONETCLIENT_AE_MODE struAEMode;

	/*
		AE Window 设置,分成6个Window,分别是 1 -6 
	*/
	VIDEONETCLIENT_AEWINDOW_CFG struAEWindow[DVR_MAX_ISP_AEWINDOW];

	/*
		曝光参数
	*/
	VIDEONETCLIENT_EXPOSAL_CFG struExposal;
		
	/*
		白平衡 (White Balance)
	*/
	VIDEONETCLIENT_WHITEBALANCE_CFG struWhiteBalance;

	/*
		数字降噪 （De-Noise）
	*/
	VIDEONETCLIENT_DENOISE_CFG struDeNoise;
}
VIDEONETCLIENT_ISP_TEMPLATE, *LPVIDEONETCLIENT_ISP_TEMPLATE;

/* NXP8850 Image Sensor Processing配置信息*/
typedef struct tagVIDEONETCLIENT_NXP8850ISP_CFG
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	//ISP基本配置参数
	VIDEONETCLIENT_ISP_COMMON struCommon;

	//ISP参数模版
	VIDEONETCLIENT_ISP_TEMPLATE struTemplate[DVR_MAX_ISP_TEMPLATE];

} VIDEONETCLIENT_NXP8850ISP_CFG, *LPVIDEONETCLIENT_NXP8850ISP_CFG;

#define NXP8850ISP_CFG_LEN		(sizeof (VIDEONETCLIENT_NXP8850ISP_CFG))
/////////////////////////////////////////////////////////////////////////////////////////////////

//#define RESERVED_COMPRESS_OLD

/////////////////////////////////////////////////////////////////////////////////////////////////
//编码类型
#define   DVR_MAX_STREAM_TYPE		2
#define   DVR_CAP_NORMAL_H264    	0x01
#define   DVR_CAP_ADVANCED_H264		0x02

#define   DVR_CAP_RESOLUTION_QCIF   0x01
#define   DVR_CAP_RESOLUTION_CIF    0x02
#define   DVR_CAP_RESOLUTION_2CIF  	0x04		//实时2CIF
#define   DVR_CAP_RESOLUTION_D1    	0x08		//实时D1

#define DVR_CAP_RESOLUTION_4CIF_SIM   0x10		//非实时D1
#define DVR_CAP_RESOLUTION_2CIF_SIM   0x20		//非实时2CIF

#define DVR_CAP_RESOLUTION_QVGA		0x40		//320*240
#define DVR_CAP_RESOLUTION_VGA		0x80		//640*480
#define DVR_CAP_RESOLUTION_SVGA		0x100		//800*600
#define DVR_CAP_RESOLUTION_XVGA		0x200		//1024*768
#define DVR_CAP_RESOLUTION_HD720	0x400		//1280*720
#define DVR_CAP_RESOLUTION_QuadVGA	0x800		//1280*960
#define DVR_CAP_RESOLUTION_SXGA		0x1000		//1280*1024
#define DVR_CAP_RESOLUTION_UXGA		0x2000		//1600*1200
#define DVR_CAP_RESOLUTION_HD1080	0x4000		//1920*1080
#define DVR_CAP_RESOLUTION_SD1		0x8000		//960*576
#define DVR_CAP_RESOLUTION_QXGA     0x10000     // 2048x1536
#define DVR_CAP_RESOLUTION_CR_640x360					0x20000     //640*360

//////////////////////////////////////////////////////////////////////////////////////////////////
/*
	结构体设计说明:每一个IPC设备的子码流支持的分辨率依赖于主码流对应的分辨率，也就是说每一种主码流可以支持多种分辨率
	而每一种分辨率下，又对应支持多种子码流（子码流和高清子码流）的多种分辨率，每一种分辨率对应了支持的最大帧率

	该结构体主要是用于从设备端获取每一种分辨率支持对应的最大帧率
*/

/*!
*  @struct	tagVIDEONETCLIENT_FRAMERATE_MAP
*  @brief	每一种分辨率对应的最大帧率
 */

// 编码能力集，主要用实现动态帧率范围
#define DVR_MAX_RESOLUTION_CNT (8) // 最大的分辨率数目
#define DVR_MAX_SUBSTREAM_CNT (2) // 子码流的最大个数
typedef struct tagVIDEONETCLIENT_FRAMERATE_MAP
{
	int bValid;
	DWORD resolution;
	int max_framerate; // 如果此为0，表示动态帧率，依赖于主码流的分辨率
}VIDEONETCLIENT_FRAMERATE_MAP;

/*!
*  @struct	tagVIDEONETCLIENT_STREAM_FRAMERATE
*  @brief	主码流和子码流支持的分辨率能力
 */
typedef struct tagVIDEONETCLIENT_STREAM_FRAMERATE
{
	int bValid;
	VIDEONETCLIENT_FRAMERATE_MAP cur_cap; // 当前码流的支持情况

	int nValidFramerateCnt[DVR_MAX_SUBSTREAM_CNT]; // 子码流支持的分辨率的个数, [0]表示子码流，[1]表示高清子码流
	VIDEONETCLIENT_FRAMERATE_MAP cap[DVR_MAX_SUBSTREAM_CNT][DVR_MAX_RESOLUTION_CNT]; // 当前码流在分辨率下对其它子码流的影响[0][DVR_MAX_RESOLUTION_CNT]表示子码流， [1][DVR_MAX_RESOLUTION_CNT]表示高清子码流， 
}VIDEONETCLIENT_STREAM_FRAMERATE;

/*!
*  @struct	tagVIDEONETCLIENT_CODEC_CHANNEL_CAP
*  @brief	每个通道的设备的编码能力结构
 */
typedef struct tagVIDEONETCLIENT_CODEC_CHANNEL_CAP
{
	int bValid;
	int resolution_cnt; // 主码流所支持的分辨率的数目
	VIDEONETCLIENT_STREAM_FRAMERATE framerate_cap[DVR_MAX_RESOLUTION_CNT]; // 主码流最多支持的分辨率帧率能力情况 
	
	int nSupportCorridorMode;			// 是否支持走廊模式, 0表示不支持, 1表示支持
	unsigned nSupportCodecMask;			// 无论此值如何，默认是支持H264．1表示支持H265编码
	unsigned nSupportShelterCheck;		// 是否支持遮挡检测, 0表示不支持，1表示支持

	char resvered[244]; // 保留，以便扩展
}VIDEONETCLIENT_CODEC_CHANNEL_CAP;

/*!
*  @struct	tagVIDEONETCLIENT_CODEC_CAP
*  @brief	设备的总编码能力
 */
typedef struct tagVIDEONETCLIENT_CODEC_CAP
{
	int bValid;
	VIDEONETCLIENT_CODEC_CHANNEL_CAP codec_cap[DVR_MAX_VIDEOIN_NUM]; // 设备的总编码能力
}VIDEONETCLIENT_CODEC_CAP;
#define COMPRESS_NEW_CFG_LEN   sizeof (VIDEONETCLIENT_CODEC_CAP)


//////////////////////////////////////////////////////////////////////////
/*!
*  @struct	tagVIDEONETCLIENT_COMPRESS_CAP
*  @brief	编码能力结构
 */
typedef struct tagVIDEONETCLIENT_COMPRESS_CAP
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */
	int nStreamFormatCap;										/*!< 支持的码流格式， 所有支持的格式相或的结果  */
	DWORD dwResolutionCap[DVR_MAX_STREAM_TYPE];			/*!< 每种编码格式下支持的分辨率格式,支持所有的格式相或的结果  */

} VIDEONETCLIENT_COMPRESS_CAP, *LPVIDEONETCLIENT_COMPRESS_CAP;

/*!
*  @struct	tagVIDEONETCLIENT_COMPRESSION_INFO
*  @brief	编码配置结构
 */
typedef struct tagVIDEONETCLIENT_COMPRESSION_INFO
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */
	int nVideoFrameRate;										/*!< 帧率 1-20，ff为全帧率 */
	int nVideoBitrate;											/*!< 码率上限,单位Kbit/s */

	int nQuotiety;												/*!< 量化系数:0-6 */
	int nResolution;											/*!< 分辨率0-CIF, 1-D1 */
	int nStreamType;											/*!< 码流类型 0-视频流 1-复合流 */

	int nBitrateType;											/*!< 码率类型 0-变码率率 1-定码 2-限定码率 */

} VIDEONETCLIENT_COMPRESSION_INFO, *LPVIDEONETCLIENT_COMPRESSION_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_AUX_COMPRESSION_INFO
*  @brief	子码流编码参数结构
 */
typedef struct tagVIDEONETCLIENT_AUX_COMPRESSION_INFO
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */
	int bEnalbe;												/*!< 是否启用子码流  */
	int nResolution;											/*!< 分辨率0-CIF, 1-D1 */
	int nVideoFrameRate;										/*!< 帧率 1-20，ff为全帧率 */
	int nVideoBitrate;											/*!< 码率:32Kbin/s,48Kbit/s,64Kbit/s,128Kbit/s,256Kbit/s,512Kbit/s */

} VIDEONETCLIENT_AUX_COMPRESSION_INFO, *LPVIDEONETCLIENT_AUX_COMPRESSION_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_COMPRESSION_CHANNEL
*  @brief	通道编码参数结构
 */
typedef struct tagVIDEONETCLIENT_COMPRESSION_CHANNEL
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */
	int nDelayRecordTime;										/*!< 录象延迟时间:10s、30s、自定义（10s-300s） */
	int nPreRecordTime;											/*!< 预录时间:0表示最大预录时间、5秒、10秒 */
	VIDEONETCLIENT_COMPRESS_CAP struCompressCap;						/*!< 压缩能力（只读）  */
	VIDEONETCLIENT_AUX_COMPRESSION_INFO struNetPara;					/*!< 子码流  */
	VIDEONETCLIENT_COMPRESSION_INFO struNormalRecordPara;				// HDD 新增
	VIDEONETCLIENT_COMPRESSION_INFO struEventRecordPara;					// HDD 新增
	VIDEONETCLIENT_COMPRESSION_INFO struVGANetPara;					// HDD 新增
} VIDEONETCLIENT_COMPRESSION_CHANNEL, *LPVIDEONETCLIENT_COMPRESSION_CHANNEL;

/*!
*  @struct	tagVIDEONETCLIENT_HC_RESMODE
*  @brief	HC板型编解码资源分配模式
*/
typedef struct tagVIDEONETCLIENT_HC_RESMODE
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	//该结构体只在HC或HS板型中有效

	/*  工作模式取值范围为(0 - 2)
	16路板型: 
	模式0时，系统支持16路实时CIF或非实时2CIF、D1格式编解码
	模式1时，系统支持8路实时2CIF 加8路实时CIF 编解，4路2CIF实时解码
	模式2时，系统支持4路实时D1 加12路实时CIF编码，1路D1实时解码
	8路板型: 
	模式0时，系统支持8路实时CIF或非实时2CIF、D1格式编解码
	模式1时，系统支持2路实时D1 加6路实时CIF 编解，4路D1实时解码
	模式2时，系统支持6路实时D1 加2路实时CIF编码，1路D1实时解码
	*/
	int nMode;

	DWORD dwChMask;												/*!< 通道掩码，第0位为1表示通道1支持2CIF或D1格式编码，依次类推 */

} VIDEONETCLIENT_HC_RESMODE, *LPVIDEONETCLIENT_HC_RESMODE;

/////////////////////////////////////////////////////////////////////////////////////////////////
/*!
*  @struct	tagVIDEONETCLIENT_VGA_NET_CFG
*  @brief	VGA子码流结构
*/
typedef struct tagVIDEONETCLIENT_HD_NET_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_COMPRESSION_INFO struVGANetPara[DVR_MAX_VIDEOIN_NUM];				/*!< VGA子码流 */

}VIDEONETCLIENT_VGA_NET_CFG, *LPVIDEONETCLIENT_VGA_NET_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_COMPRESSION_CFG
*  @brief	编码参数结构
*/
typedef struct tagVIDEONETCLIENT_COMPRESSION_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_COMPRESSION_CHANNEL struCompressChannel[DVR_MAX_VIDEOIN_NUM];	/*!< 各通道编码参数 */
} VIDEONETCLIENT_COMPRESSION_CFG, *LPVIDEONETCLIENT_COMPRESSION_CFG;

/** @brief 编码配置结构体长度																	 */
#define COMPRESS_CFG_LEN   sizeof (VIDEONETCLIENT_COMPRESSION_CFG)
/////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////
/*!
*  @struct	tagVIDEONETCLIENT_RECORD_CTRLSTATE
*  @brief	录像控制状态
*/
typedef struct tagVIDEONETCLIENT_RECORD_CTRLSTATE
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	unsigned int uRecordMode[DVR_MAX_VIDEOIN_NUM];							/*!< 0表示手动录像,1表示自动录像,2表示关闭录像 */

} VIDEONETCLIENT_RECORD_CTRLSTATE, *LPVIDEONETCLIENT_RECORD_CTRLSTATE;

/*!
*  @struct	tagVIDEONETCLIENT_RECORD_STREAM
*  @brief	录像码流选择
*/
typedef struct tagVIDEONETCLIENT_RECORD_STREAM
{
	int bValid;																/*!< 本结构体是否有效，=0表示无效 */

	unsigned int uStreamIndex[DVR_MAX_VIDEOIN_NUM];							/*!< 0表示主码流,1表示子码流(CIF),2表示高清子码流(VGA) */

} VIDEONETCLIENT_RECORD_STREAM, *LPVIDEONETCLIENT_RECORD_STREAM;

/*!
*  @struct	tagVIDEONETCLIENT_RECORD_SCHED
*  @brief	录像计划结构
 */
typedef struct tagVIDEONETCLIENT_RECORD_SCHED
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_SCHEDTIME struRecordTime[DVR_MAX_VIDEOIN_NUM];					/*!< 录像时间计划 */
	VIDEONETCLIENT_RECORD_CTRLSTATE struRecordCtlState;								/*!< 录像控制状态 */
	VIDEONETCLIENT_RECORD_STREAM struRecordStream;									/*!< 录像码流 */
} VIDEONETCLIENT_RECORD_SCHED, *LPVIDEONETCLIENT_RECORD_SCHED;

/** @brief 录像计划结构体长度																	 */
#define RECORD_SCHED_LEN sizeof(VIDEONETCLIENT_RECORD_SCHED)
/////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_TIME
*  @brief	配置系统时间参数
 */
typedef struct tagVIDEONETCLIENT_TIME
{
	int nYear;																/*!< 年 */
	int nMonth;																/*!< 月 */
	int nDay;																/*!< 日 */
	int nHour;																/*!< 时 */
	int nMinute;															/*!< 分 */
	int nSecond;															/*!< 秒 */

} VIDEONETCLIENT_TIME, *LPVIDEONETCLIENT_TIME;

/** @brief 配置系统时间结构体长度																 */
#define TIME_CFG_LEN sizeof(VIDEONETCLIENT_TIME)
/////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////
//#define RESERVED_PTZ_OLD

/*!
*  @struct	tagVIDEONETCLIENT_PTZPRO
*  @brief	云台协议信息
 */
typedef struct tagVIDEONETCLIENT_PTZPRO
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	char szPTZName[DVR_MAX_PTZPRONAME_LEN];									/*!< PTZ协议名称  */

} VIDEONETCLIENT_PTZPRO, *LPVIDEONETCLIENT_PTZPRO;

/*!
*  @struct	tagVIDEONETCLIENT_PTZPRO_CFG
*  @brief	云台协议管理信息
 */
typedef struct tagVIDEONETCLIENT_PTZPRO_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int nPtzCount;															/*!< 系统支持PTZ协议的个数  */
	VIDEONETCLIENT_PTZPRO struPTZProtocol[DVR_MAX_PTZPRO_NUM];						/*!< 系统PTZ  */

} VIDEONETCLIENT_PTZPRO_CFG, *LPVIDEONETCLIENT_PTZPRO_CFG;

/** @brief 云台协议管理结构体长度																 */
#define PTZPRO_CFG_LEN sizeof(VIDEONETCLIENT_PTZPRO_CFG)
/////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_PTZ
*  @brief	云台信息
 */
typedef struct tagVIDEONETCLIENT_PTZ
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	unsigned char bySetPreset[DVR_MAX_PRESET_NUM];							/*!< 预置点是否设置,0-没有设置,1-设置  */
	unsigned char bySetCruise[DVR_MAX_PRESET_NUM];							/*!< 巡航是否设置: 0-没有设置,1-设置  */
	unsigned char bySetTrack[DVR_MAX_PRESET_NUM];							/*!< 轨迹是否设置,0-没有设置,1-设置  */

} VIDEONETCLIENT_PTZ, *LPVIDEONETCLIENT_PTZ;

// 摄像机配置——云台配置
typedef enum 
{
	eZWPTZActionType_Preset,
	eZWPTZActionType_Cruise,
	eZWPTZActionType_Track,
	eZWPTZActionType_AutoScan,
}eZWPTZActionType;
typedef struct tagZW_CAMERA_PTZ_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	int dwEnable;
	DWORD dwAddress;
	DWORD dwBandrate;
	DWORD dwProtocol_index;

	int  bWatch;
	DWORD dwWatchDelayBySecond;									// 多长时间之后开始守望,单位：秒
	eZWPTZActionType dwPTZActionType;							// 守望动作类型
	DWORD dwPTZActionID;										// 守望动作ID

	char	acReserved[256];									// 保留(方便日后扩展)
}ZW_CAMERA_PTZ_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_DECODER_CHANNEL
*  @brief	解码通道配置
 */
typedef struct tagVIDEONETCLIENT_DECODER_CHANNEL
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	char szPTZName[DVR_MAX_PTZPRONAME_LEN];									/*!< PTZ协议名称  */

	ZW_CAMERA_PTZ_CFG   struPTZcfg;			// HDD 新增，用于替代struSerial

} VIDEONETCLIENT_DECODER_CHANNEL, *LPVIDEONETCLIENT_DECODER_CHANNEL;

/*!
*  @struct	tagVIDEONETCLIENT_PTZ_ELCTRONIC_SONY
*  @brief	sony的电子ptz机芯配置
*/
typedef struct  tagVIDEONETCLIENT_PTZ_ELCTRONIC_SONY
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int nDigitZoom;															/*!< 数字变倍 (0-关 1-开)			                        */
	int nLowLum;															/*!< 低照度 (0-关 1-开)										*/
	int nBackLight;															/*!< 背光补偿 (0-关 1-开)									*/
	int nAutoShutter;														/*!< 自动快门 (0-手动 1-自动)			                    */
	int nWhiteBalance;														/*!< 白平衡 (0-手动 1-自动 2-室内 3-室外 4-ATW 5-ONE PUSH)	*/
	int nRedGain;															/*!< 红增益 (0~255)											*/
	int nBlueGain;															/*!< 蓝增益 (0~255)											*/
	int nAcutance;															/*!< 锐度 (0~15)											*/
	int nExpMode;															/*!< 曝光模式 (0-自动 1-手动 2-快门优先 3-光圈优先)			*/
	int nShutterSpeed;														/*!< 快门速度 (0~15)				                        */
	int nIrisSpeed;															/*!< 光圈 (0-手动 1-自动）									*/
	int nWideDyn;															/*!< 宽动态 (0-关 1-开)										*/
	int n3DFilter;															/*!< 3D降噪	(0-关 1-开)										*/
	int nMirror;															/*!< 镜像  (0-关 1-开)										*/
	int nReverse;															/*!< 翻转  (0-关 1-开)										*/
	int nInputFrequency;													/*!< 输入频率  (0-50Hz 1-60Hz)                              */
	int nLongRestrict;														/*!< 长焦限速（1-开，0-关）									*/
	int nNorthSet;															/*!< 北位设定（1-设定）										*/

} VIDEONETCLIENT_PTZ_ELCTRONIC_SONY, *LPVIDEONETCLIENT_PTZ_ELCTRONIC_SONY;

/*!
*  @struct	tagVIDEONETCLIENT_PTZ_ELCTRONIC_CHANNEL
*  @brief	单个通道的电子ptz配置
*/
typedef struct  tagVIDEONETCLIENT_PTZ_ELCTRONIC_CHANNEL
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_PTZ_ELCTRONIC_SONY struPtzElcSony;								/*!< SONY电子PTZ机芯配置 */

} VIDEONETCLIENT_PTZ_ELCTRONIC_CHANNEL, *LPVIDEONETCLIENT_PTZ_ELCTRONIC_CHANNEL;

/*!
*  @struct	VIDEONETCLIENT_PTZ_TEMPERATURE_DEVICE
*  @brief	ptz温度设备配置
*/
typedef struct  tagVIDEONETCLIENT_PTZ_TEMPERATURE_DEVICE
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int	iWorkMode;															/*!< 操作模式: 0自动，1手动									*/
	int	iManualSwitch;														/*!< 手动开关: 0手动关，1手动开								*/
	int	iOpenThreshold;														/*!< 开启温度，高于此温度时开启								*/
	int	iCloseThreshold;													/*!< 关闭温度，低于此温度时开启								*/
} VIDEONETCLIENT_PTZ_TEMPERATURE_DEVICE, *LPVIDEONETCLIENT_PTZ_TEMPERATURE_DEVICE;

/*!
*  @struct	VIDEONETCLIENT_PTZ_ELCTRONIC_CH_TEMPERATURE
*  @brief	单个通道的电子ptz温度设备配置
*/
typedef struct  tagVIDEONETCLIENT_PTZ_ELCTRONIC_CH_TEMPERATURE
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_PTZ_TEMPERATURE_DEVICE struPtzFanDevice;							/*!< 风扇设备配置 */
	VIDEONETCLIENT_PTZ_TEMPERATURE_DEVICE struPtzHeaterDevice;						/*!< 加热设备配置 */
	VIDEONETCLIENT_PTZ_TEMPERATURE_DEVICE struPtzReserveDevice[14];					/*!< 温度设备配置(增加设备时减一) */

} VIDEONETCLIENT_PTZ_ELCTRONIC_CH_TEMPERATURE, *LPVIDEONETCLIENT_PTZ_ELCTRONIC_CH_TEMPERATURE;

/*!
*  @struct	tagVIDEONETCLIENT_PTZ_ELCTRONIC
*  @brief	所有通道的电子ptz配置
*/
typedef struct  tagVIDEONETCLIENT_PTZ_ELCTRONIC
{
	int bValid;					//! 本结构体是否有效，=0表示无效

	VIDEONETCLIENT_PTZ_ELCTRONIC_CHANNEL   struPtzElcChannel[DVR_MAX_PTZ_NUM];
	VIDEONETCLIENT_PTZ_ELCTRONIC_CH_TEMPERATURE   struPtzElcChTemperature[DVR_MAX_PTZ_NUM];

} VIDEONETCLIENT_PTZ_ELCTRONIC, *LPVIDEONETCLIENT_PTZ_ELCTRONIC;

/*!
*  @struct	VIDEONETCLIENT_PTZ_REPLENISH_CONTENT_1
*  @brief	ptz设备补充配置内容
*/
typedef struct  tagVIDEONETCLIENT_PTZ_REPLENISH_CONTENT_1
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int	iLowPowerConsumption;												/*!< 低功耗: 0关，1开										*/
	int	iScreenWiper;														/*!< 雨刷器: 0关，1单刮，2连刮								*/
	int	iNightVision;														/*!< 夜视：0关，1开，2自动									*/
	int	iDemist;															/*!< 除雾：0关，1开											*/
} VIDEONETCLIENT_PTZ_REPLENISH_CONTENT_1, *LPVIDEONETCLIENT_PTZ_REPLENISH_CONTENT_1;

/*!
*  @struct	VIDEONETCLIENT_PTZ_REPLENISH_1
*  @brief	ptz设备补充配置
*/
typedef struct tagVIDEONETCLIENT_PTZ_REPLENISH_1
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_PTZ_REPLENISH_CONTENT_1 struContent[DVR_MAX_PTZ_NUM];			/*!< 配置内容 */

} VIDEONETCLIENT_PTZ_REPLENISH_1, *LPVIDEONETCLIENT_PTZ_REPLENISH_1;



/*!
*  @struct	tagVIDEONETCLIENT_DECODER_CFG
*  @brief	设备解码配置
 */
typedef struct tagVIDEONETCLIENT_DECODER_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_DECODER_CHANNEL struDecoder[DVR_MAX_PTZ_NUM];					/*!< 各解码通道配置 */
	VIDEONETCLIENT_PTZ_ELCTRONIC	struPtzElc;										/*!< 电子ptz配置 */
	VIDEONETCLIENT_PTZ_REPLENISH_1	struReplenish1;									/*!< 补充配置1		*/

} VIDEONETCLIENT_DECODER_CFG, *LPVIDEONETCLIENT_DECODER_CFG;

/** @brief 设备解码配置结构体长度																 */
#define  DECODER_CFG_LEN  sizeof(VIDEONETCLIENT_DECODER_CFG)
///////////////////////////////////////////////////////////////////////

//#define RESERVED_ALARM_OLD
///////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_ALARMIN_CHANNEL
*  @brief	各通道报警输入配置
 */
typedef struct tagVIDEONETCLIENT_ALARMIN_CHANNEL
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int nAlarmInType;														/*!< 报警器类型,0：常开,1：常闭  */

	VIDEONETCLIENT_HANDLEEXCEPTION struHandleType;									/*!< 处理方式  */
	VIDEONETCLIENT_SCHEDTIME struSchedTime;											/*<! 报警输入布防时间 */

} VIDEONETCLIENT_ALARMIN_CHANNEL, *LPVIDEONETCLIENT_ALARMIN_CHANNEL;

/*!
*  @struct	tagVIDEONETCLIENT_ALARMOUT_CHANNEL
*  @brief	各通道报警输出配置
 */
typedef struct tagVIDEONETCLIENT_ALARMOUT_CHANNEL
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int nAlarmOutDelay;														/*!< 输出保持时间(0为无限，需要手动关闭)  */
	VIDEONETCLIENT_SCHEDTIME struSchedTime;											/*!< 报警输出布防时间 */



} VIDEONETCLIENT_ALARMOUT_CHANNEL, *LPVIDEONETCLIENT_ALARMOUT_CHANNEL;

/*!
*  @struct	tagVIDEONETCLIENT_ALARM_CAPTURE_PIC
*  @brief	报警联动抓图配置
 */
typedef struct tagVIDEONETCLIENT_ALARM_CAPTURE_PIC
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int nCapPicCount;														/*!< 联动快照张数 */
	int nCapPicIntervalTime;												/*!< 联动快照间隔时间 */

	DWORD dwResolution;
	DWORD dwPictureQuality;

} VIDEONETCLIENT_ALARM_CAPTURE_PIC, *LPVIDEONETCLIENT_ALARM_CAPTURE_PIC;

/*!
*  @struct	tagVIDEONETCLIENT_SYSTEM_EXCEPTION
*  @brief	系统异常检测
 */
typedef struct tagVIDEONETCLIENT_SYSTEM_EXCEPTION
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int bEnable;															/*!< 是否启动检测 */
	int nCheckTime;															/*!< 检测时间间隔，单位为秒（目前不支持） */
	VIDEONETCLIENT_HANDLEEXCEPTION struHandleType;									/*!< 联动处理方式  */

} VIDEONETCLIENT_SYSTEM_EXCEPTION, *LPVIDEONETCLIENT_SYSTEM_EXCEPTION;

/*!
*  @struct	tagVIDEONETCLIENT_ALARM_CFG
*  @brief	报警设置
 */
typedef struct tagVIDEONETCLIENT_ALARM_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_WORKMODE struWorkMode;											/*!< 工作模式(只读) */
	VIDEONETCLIENT_ALARM_CAPTURE_PIC struCapPic;									/*!< 联动快照 */
	VIDEONETCLIENT_ALARMIN_CHANNEL struAlarmIn[DVR_MAX_ALARMIN_NUM];				/*!< 报警输入配置 */
	VIDEONETCLIENT_ALARMOUT_CHANNEL struAlarmOut[DVR_MAX_ALARMOUT_NUM];				/*!< 报警输入配置 */
	VIDEONETCLIENT_SYSTEM_EXCEPTION struSystemException[DVR_MAX_EXCEPTION_NUM];		/*!< 系统异常处理：0-硬盘故障,1-IP冲突,2-非法访问,3-网线断,4-盘组满,5-盘组异常 */
	VIDEONETCLIENT_ALIAS_CFG_1 struAlarmInAlias_1[DVR_MAX_ALARMIN_NUM];				/*!< 报警输入通道别名(Unicode) */
	VIDEONETCLIENT_ALIAS_CFG_1 struAlarmOutAlias_1[DVR_MAX_ALARMOUT_NUM];			/*!< 报警输出通道别名(Unicode) */


} VIDEONETCLIENT_ALARM_CFG, *LPVIDEONETCLIENT_ALARM_CFG;

/** @brief 报警设置结构体长度																 */
#define ALARM_CFG_LEN   sizeof (VIDEONETCLIENT_ALARM_CFG)
//////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_VO_CFG
*  @brief	显示参数
 */
typedef struct tagVIDEONETCLIENT_VO_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int nScreenSaveTime;													/*!< 屏幕保护时间：0表示从不启动屏幕保护，60s-3600s表示屏幕保护时间）  */
	int nMenuAlphaValue;													/*!< 菜单与背景图象对比度：0表示不透明，4表示4:1，8表示3:1  */

} VIDEONETCLIENT_VO_CFG, *LPVIDEONETCLIENT_VO_CFG;

/** @brief 显示参数结构体长度																 */
#define VO_CFG_LEN   sizeof (VIDEONETCLIENT_VO_CFG)
/////////////////////////////////////////////////////////////

//#define RESERVED_USR_OLD
/////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_USER_ENABLE
*  @brief	用户使能信息
 */
typedef struct tagVIDEONETCLIENT_USER_ENABLE
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int bEnable;															/*!< 是否启用:0表示禁用，1表示启用 */

} VIDEONETCLIENT_USER_ENABLE, *LPVIDEONETCLIENT_USER_ENABLE;

/*!
*  @struct	tagVIDEONETCLIENT_USER_INFO
*  @brief	用户基本信息
 */
typedef struct tagVIDEONETCLIENT_USER_INFO
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	char szPassword[DVR_MAX_PASSWORD_LEN];									/*!< 密码  */
	unsigned char byLimitMac[DVR_MAX_MAC_NUM_LEN];							/*!< 限制访问物理地址  */
	char szLimitIP[DVR_MAX_IP_STR_LEN];										/*!< 限制访问IP地址  */
} VIDEONETCLIENT_USER_INFO, *LPVIDEONETCLIENT_USER_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_USER_RIGHT
*  @brief	用户权限信息
 */
typedef struct tagVIDEONETCLIENT_USER_RIGHT
{
	int bValid;								/*!< 本结构体是否有效，0表示无效 */
	int nLocalRight[DVR_MAX_RIGHT_NUM];		/*!< 本地权限：数组0-本地系统设置；1-文件管理；2-录像备份；3-系统关闭；4-邮件通知 */
	int nRemoteRight[DVR_MAX_RIGHT_NUM];	/*!< 远程权限：数组0-系统设置；1-语音对讲；2-串口输出；3-报警输出；4-远程升级；5-关闭系统 */
	int nChannelRight[DVR_MAX_RIGHT_NUM];	/*!< 通道权限：数组0-本地回放；1-本地预览；2-本地云台控制；3-本地手动录像；4-远程回放；5-远程预览；6-远程云台控制；7-远程手动录像 */

} VIDEONETCLIENT_USER_RIGHT, *LPVIDEONETCLIENT_USER_RIGHT;

/*!
*  @struct	tagVIDEONETCLIENT_ONLINEUSER
*  @brief	在线用户信息
*/
typedef struct tagVIDEONETCLIENT_ONLINEUSER
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int bRemote;															/*!< 是否为远程用户	*/
	int bConnect;															/*!< 是否处于连接状态 */
	DWORD dwUserID;															/*!< 用户句柄 */
	DWORD dwProtocolID;														/*!< 登陆协议 */
	char szUserName[DVR_MAX_USERNAME_LEN];									/*!< 用户名 */
	DWORD dwIPAddress;														/*!< 登陆IP */
	VIDEONETCLIENT_TIME struLoginTime;												/*!< 登陆时间 */
	DWORD dwBitrate;														/*!< 网络流量 b/s */

}VIDEONETCLIENT_ONLINEUSER, *LPVIDEONETCLIENT_ONLINEUSER; 

/*!
*  @struct	tagVIDEONETCLIENT_ONLINEUSER_CFG
*  @brief	在线用户配置
*/
typedef struct tagVIDEONETCLIENT_ONLINEUSER_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_ONLINEUSER struOnlineUser[DVR_MAX_ONLINEUSER_NUM];				/*!< 在线用户列表 */

} VIDEONETCLIENT_ONLINEUSER_CFG, *LPVIDEONETCLIENT_ONLINEUSER_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_WHITEIP_ENABLE
*  @brief	白名单使能
*/
typedef struct tagVIDEONETCLIENT_WHITEIP_ENABLE
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int bEnable;															/*!< 是否启用IP白名单*/
} VIDEONETCLIENT_WHITEIP_ENABLE, *LPVIDEONETCLIENT_WHITEIP_ENABLE;

/*!
*  @struct	tagVIDEONETCLIENT_WHITEIP
*  @brief	白名单用户信息
*/
typedef struct
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	DWORD dwWhiteIP;														/*!< 白名单IP地址 */

} VIDEONETCLIENT_WHITEIP, *LPVIDEONETCLIENT_WHITEIP;

/*!
*  @struct	tagVIDEONETCLIENT_BLACKIP_ENABLE
*  @brief	黑名单使能
*/
typedef struct 
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int bEnable;															/*!< 是否启用IP白名单*/
} VIDEONETCLIENT_BLACKIP_ENABLE, *LPVIDEONETCLIENT_BLACKIP_ENABLE;

/*!
*  @struct	tagVIDEONETCLIENT_BLACKIP
*  @brief	黑名单用户信息
*/
typedef struct
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	DWORD dwBlackIP;														/*!< 白名单IP地址 */

} VIDEONETCLIENT_BLACKIP, *LPVIDEONETCLIENT_BLACKIP;

/*!
*  @struct	tagVIDEONETCLIENT_BLACKIP
*  @brief	黑名单用户列表
*/
typedef struct 
{
	VIDEONETCLIENT_BLACKIP struBlackIP[DVR_MAX_BLACKIP_NUM];						/*!< 黑名单信息 */
	VIDEONETCLIENT_BLACKIP_ENABLE struBlackIPEnable;								/*!< 黑名单使能信息 */
}VIDEONETCLIENT_BLACKIP_LIST, * LPVIDEONETCLIENT_BLACKIP_LIST;

// 系统配置——用户配置
typedef enum
{
	eZWUserLevel_Administrator,
	eZWUserLevel_DefaultUser,
	eZWUserLevel_Normal,
}eZWUserLevel;

typedef enum
{
	eZWLocalAuthority_Configure			= 0x01,
	eZWLocalAuthority_Advanced			= 0x02,
	eZWLocalAuthority_PoweroffOrReboot	= 0x04,
	eZWLocalAuthority_Backup			= 0x08,
}eZWLocalAuthority;

typedef enum
{
	eZWRemoteAuthority_Configure		= 1,
	eZWRemoteAuthority_Advanced			= 2,
	eZWRemoteAuthority_PoweroffOrReboot = 4,
	eZWRemoteAuthority_SerialPortOutput = 8,		
	eZWRemoteAuthority_RealTalk			= 16,
	eZWRemoteAuthority_Alarmout			= 32,
	eZWRemoteAuthority_Backup			= 64,
	eZWRemoteAuthority_ClearAlarm		= 128,

	// 在本行上面添加新扩展的权限
}eZWRemoteAuthority;

typedef struct tagZW_AUTHORITY
{
	int bValid;

	DWORD dwLocalAuthorityMask;						// eZWLocalAuthority枚举的组合值
	DWORD dwRemoteAuthorityMask;					// eZWRemoteAuthority枚举的组合值
	DWORD dwLocalPreviewMask;						// 每一位表示对应的通道是否拥有此项权限,比如0x02表示有第二个通道的本地通览权限
	DWORD dwLocalPlaybackMask;						// ...............................................................本地回放权限
	DWORD dwLocalPTZMask;							// ...............................................................本地PTZr控制权限
	DWORD dwLocalManualControlMask;					// ...............................................................本地手动控制权限
	DWORD dwRemotePreviewMask;						// ...............................................................远程预览权限
	DWORD dwRemotePlaybackMask;						// ...............................................................远程回放权限
	DWORD dwRemotePTZMask;							// ...............................................................远程PTZ控制权限
	DWORD dwRemoteManualControlMask;				// ...............................................................远程手动控制权限
}ZW_AUTHORITY;
typedef struct tagZW_USER_BASIC_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	char szUserName[DVR_MAX_USERNAME_LEN];
	char szUserPassword[DVR_MAX_PASSWORD_LEN];
	eZWUserLevel level;
	DWORD bBindMAC;
	char szBindMAC[DVR_MAX_MAC_STR_LEN];

	ZW_AUTHORITY struAuthority;

	DWORD dwReserved[16];							// 说不定以后要添加其它权限咧，保留在此
}ZW_USER_BASIC_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_USER_CFG
*  @brief	用户配置信息
 */
typedef struct tagVIDEONETCLIENT_USER_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	ZW_USER_BASIC_CFG struUserBasic[DVR_MAX_USER_NUM];						// 新增
	VIDEONETCLIENT_ONLINEUSER_CFG struUserOnline;									/*!< 在线用户信息 */
	VIDEONETCLIENT_WHITEIP struWhiteIP[DVR_MAX_WHITEIP_NUM];						/*!< 白名单信息 */
	VIDEONETCLIENT_WHITEIP_ENABLE struWhiteIPEnable;								/*!< 白名单使能信息 */

} VIDEONETCLIENT_USER_CFG, *LPVIDEONETCLIENT_USER_CFG;

/** @brief 用户配置信息结构体长度														 */
#define USER_CFG_LEN	sizeof(VIDEONETCLIENT_USER_CFG)
/////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_DEVICE_INFO
*  @brief	设备信息结构(只读)
 */
#define DVR_MAX_SN_LEN			(32)
typedef struct tagVIDEONETCLIENT_DEVICE_INFO
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	DWORD dwBoardType;												/*!< 板型编号 */
	char szTypeName[DVR_MAX_VERSION_LEN];									/*!< 设备型谱名称，如ZW-2016HC */
	char szSerialNum[DVR_MAX_SN_LEN];												/*!< 序列号  */
	char szHardwareVersion[DVR_MAX_VERSION_LEN];							/*!< 硬件版本 */
	char szSoftwareVersion[DVR_MAX_VERSION_LEN];							/*!< 软件版本 */
	char szDspVersion[DVR_MAX_VERSION_LEN];									/*!< 编码版本 */

	unsigned char byVideoInChannels;										/*!< 视频输入路数  */
	unsigned char byAudioInChannels;										/*!< 音频输入路数  */
	unsigned char byAlarmInChannels;										/*!< 报警输入路数  */
	unsigned char byAlarmOutChannels;										/*!< 报警输出路数  */

	unsigned char byVGAChannels;											/*!< VGA接口个数  */

	unsigned char bySpotOutChannles;										/*!< SPOT输出路数  */
	unsigned char byVoiceInChannels;										/*!< 语音对讲输入路数  */

} VIDEONETCLIENT_DEVICE_INFO, *LPVIDEONETCLIENT_DEVICE_INFO;

/** @brief 设备信息结构体长度														 */
#define	DEVICE_INFO_LEN	sizeof(VIDEONETCLIENT_DEVICE_INFO)
//////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_DEVICE_INFO_EX
*  @brief	设备信息扩展结构(只读)
 */
typedef struct tagVIDEONETCLIENT_DEVICE_INFO_EX
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int nEnableSmartAVC[DVR_MAX_VIDEOIN_NUM];								/*!< 表示设备的通道是否支持smartAVC，0，表示不支持，1，表示支持*/
	char cReserve[1024];
} VIDEONETCLIENT_DEVICE_INFO_EX, *LPVIDEONETCLIENT_DEVICE_INFO_EX;

/** @brief 设备信息结构体长度														 */
#define	DEVICE_INFO_EX_LEN	sizeof(VIDEONETCLIENT_DEVICE_INFO_EX)
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
//#define RESERVED_COMMON_OLD
// 夏令时时间点周表示方法，常用
typedef struct tagZW_DSTWEEKMODE_TIMEPOINT_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	unsigned char bytStartMonth;								// 月份  (范围:0-11)
	unsigned char bytWhichWeek;								// 第几周(范围:0-6,6表示最后一周)
	unsigned char bytWeekDay;								// 星期几(范围:0-6)

	unsigned char bytHour;									// 小时[范围:0-23]							
	unsigned char bytMinute;									// 分钟[范围:0-59]
	unsigned char bytSecond;									// 秒[范围:0-59]

	unsigned char bytReserved[2];
}ZW_DSTWEEKMODE_TIMEPOINT_CFG;

typedef enum 
{
	eDSTTimeFormat_Week,
	eDSTTimeFormat_Date,
}eDSTTimeFormat;

/*!
*  @struct	tagVIDEONETCLIENT_DST
*  @brief	夏时制信息结构(系统配置——通用配置——夏令时)
 */
typedef struct tagVIDEONETCLIENT_DST
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */
	int bEnableDST;															/*!< 是否启用夏时制:0表示禁用，1表示启用 */

	VIDEONETCLIENT_TIME struStart;													/*!< 月模式开始时间，年无效 */
	VIDEONETCLIENT_TIME struEnd;													/*!< 月模式结束时间，年无效 */
	int nDSTBias;															/*!< 调整时间，以秒为单位，正数表示延时，负数表示提前，取值范围60-3600 */

	eDSTTimeFormat   dwMode;							// 0,周模式，1,日模式
	ZW_DSTWEEKMODE_TIMEPOINT_CFG struWeekModeStart;		// 周模式开始时间，dwMode为eDSTTimeFormat_Week时间有效
	ZW_DSTWEEKMODE_TIMEPOINT_CFG struWeekModeStop;		// 周模式结束时间，dwMode为eDSTTimeFormat_Week时间有效
	} VIDEONETCLIENT_DST, *LPVIDEONETCLIENT_DST;

// 系统配置——通用配置——一般页面
typedef struct tagZW_SYS_COMMON_NORMAL_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	VIDEONETCLIENT_ALIAS_CFG_1 strDeviceName;
	DWORD dwDeviceID;							// 设备ID
	DWORD dwVideoOutputStandard;				// 视频输出制式
	DWORD dwLanguage;							// 系统语言
	DWORD dwAutoLogoutDelayByMinute;			// 自动注销延迟时间(分钟)
	DWORD dwScreenSaverDelayByMinute;			// 屏保延迟时间(分钟)
	DWORD dwMenuBackgroundContrast;				// 菜单背景对比度

	char  nEnableFlag;								//是否是具有车牌标记功能的IPC
	char  cReserverd[3];									//保留位
	char  acReserved[252];						// 保留(方便日后扩展)
}ZW_SYSCOMMON_NORMAL_CFG;

// 系统配置——通用配置——日期和时间
typedef enum {
	eZWDateFormat_YYYYMMDDWhhmmss,
	eZWDateFormat_YYYYMMDDhhmmss,
	eZWDateFormat_MMDDYYYYWhhmmss,
	eZWDateFormat_MMDDYYYYhhmmss,
	eZWDateFormat_DDMMYYYYWhhmmss,
	eZWDateFormat_DDMMYYYYhhmmss,
}eZWDateFormat;
typedef enum
{
	eZWTimeFormat_12Hour,
	eZWTimeFormat_24Hour,
}eZWTimeFormat;

/*!
*  @struct	tagVIDEONETCLIENT_NET_NTP
*  @brief	Ntp服务器配置信息
 */
typedef struct tagVIDEONETCLIENT_NTP_CFG
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int bNtpEnable;												/*!< 0-不启用, 1-启用  */
	char szNtpHostAddress[DVR_MAX_DOMAINNAME_LEN];				/*!< Ntp服务器，长度考虑域名  */
} VIDEONETCLIENT_NTP_CFG, *LPVIDEONETCLIENT_NTP_CFG;

typedef struct tagZW_SYS_COMMON_DATETIME_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	eZWDateFormat	dwDateFormat;						// 日期显示格式
	eZWTimeFormat	dwTimeFormat;						// 时间显示格式

	DWORD dwTimeZone;
	VIDEONETCLIENT_TIME struSysTime;					// 系统时间
	VIDEONETCLIENT_NTP_CFG struNtp;

	char	acReserved[256];						// 保留(方便日后扩展)
}ZW_SYSCOMMON_DATETIME_CFG;


typedef enum 
{
	eESTATWorkMode_RecordOrBackup,
	eESTATWorkMode_Snapshot,
}eESTATWorkMode;
typedef enum
{
	eAudioInInterface_Microphone,
	eAduioInInterface_LineIn,
}eAudioInInterface;
typedef struct tagZW_RECORD_ADVANCED_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	int bOverwrite;
	eESTATWorkMode dwESATAWorkMode;

	eAudioInInterface dwAudioInInterface;					// 对讲的音频输入使用何种方式
	char  acReserved[252];									// 保留(方便日后扩展)
}ZW_RECORD_ADVANCED_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_DEVICE_CFG
*  @brief	设备基本配置结构
 */
typedef struct tagVIDEONETCLIENT_DEVICE_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	// 有改动，添加进了月模式 2.1.1.5
	VIDEONETCLIENT_DST struDST;														/*!< 夏时制配置 */
	ZW_SYSCOMMON_DATETIME_CFG strDateTime;//2.1.1.3 新添加日期配置
	ZW_SYSCOMMON_NORMAL_CFG struNormal;	// 2.1.1.1 新添加系统普通配置
	ZW_RECORD_ADVANCED_CFG struRecord;  // 2.1.1.30 录像控制
} VIDEONETCLIENT_DEVICE_CFG, *LPVIDEONETCLIENT_DEVICE_CFG;

/** @brief 设备基本配置结构体长度														 */
#define	DEVICE_CFG_LEN	sizeof(VIDEONETCLIENT_DEVICE_CFG)
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////
//#define RESERVED_STORAGE_OLD
/*!
*  @struct	tagVIDEONETCLIENT_DISK_PARTITION
*  @brief	分区信息结构（只读）
 */
typedef struct tagVIDEONETCLIENT_DISK_PARTITION
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	char szDevNode[DVR_MAX_PARTITION_DEVNODE_LEN];							/*!< 设备节点名, 如 /dev/sda1 */
	DWORD dwCapacity;												/*!< 总容量, M为单位 */
	DWORD dwSpare;													/*!< 剩余容量 */
	DWORD dwStartCHS;												/*!< 分区起始扇区 */
	DWORD dwEndtCHS;												/*!< 分区结束扇区 */

} VIDEONETCLIENT_DISK_PARTITION, *LPVIDEONETCLIENT_DISK_PARTITION;

/*!
*  @struct	tagVIDEONETCLIENT_DISK_MARK
*  @brief	硬盘标记（只读）
 */
typedef struct tagVIDEONETCLIENT_DISK_MARK
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int nVerifyMark;														/*!< 验证码(配置改变时，验证码会同步改变) */

} VIDEONETCLIENT_DISK_MARK, *LPVIDEONETCLIENT_DISK_MARK;

/** @brief 硬盘标记结构体长度														 */
#define	DISK_MARK_LEN	sizeof(VIDEONETCLIENT_DISK_MARK)



/*!
*  @struct	tagVIDEONETCLIENT_DISK
*  @brief	硬盘信息结构（只读）
 */
typedef struct tagVIDEONETCLIENT_DISK
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int bEnable;															/*!< 是否安装有此硬盘:0表示没有，1表示有 */

	VIDEONETCLIENT_DISK_MARK struVerifyMark;										/*!< 验证码(配置改变时，验证码会同步改变) */

	int nRestState;															/*!< 硬盘状态:0-正常，1-正在写入，2-异常，3-警告 */
	int nWriteState;														/*!< 硬盘状态:0-没有写，非0-正在写入 */

	char szSerialNum[DVR_MAX_VERSION_LEN];									/*!< 序列号 */
	char szTypeName[DVR_MAX_VERSION_LEN];									/*!< 硬盘类型 */
	int nBusNum;															/*!< 物理位置,如SATA1 */

	DWORD dwCapacity;												/*!< 容量,M为单位 */
	int nPartitionCount;													/*!< 分区数量 */

	VIDEONETCLIENT_DISK_PARTITION struPartitionInfo[DVR_MAX_PARTITION_IN_HARDDISK];	/*!< 分区信息 */

} VIDEONETCLIENT_DISK, *LPVIDEONETCLIENT_DISK;

/*!
*  @struct	tagVIDEONETCLIENT_DISK_GROUP
*  @brief	盘组信息结构（只读）
 */
typedef struct tagVIDEONETCLIENT_DISK_GROUP
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int bEnable;															/*!< 是否启用本盘组 */
	int nGroupType;															/*!< 盘组类型:0-普通盘组，1-报警盘组，2-冗余盘组，3-备份盘组 */
	int nBindChannelMask;													/*!< 绑定的通道:按位标记，若第0位为1，表示通道1被选中，以此类推 */
	int nDataKeepTime;														/*!< 数据保持时间:0x80000000-一直保持，24 * 3600-保持1天，2 * 24 * 3600-保持2天，7 * 24 * 3600-保持7天，其他值-最大保持 */
	int nPartitionCount;													/*!< 已添加的分区数量 */
	char szPartitionList[DVR_MAX_PARTITION_IN_DISKGROUP][DVR_MAX_PARTITION_DEVNODE_LEN];/*!< 设备节点列表,支持32个分区 */

} VIDEONETCLIENT_DISK_GROUP, *LPVIDEONETCLIENT_DISK_GROUP;

// 磁盘管理——基本配置
typedef enum 
{
	eZWDiskStatus_Idle,
	eZWDiskStatus_Writting,
	eZWDiskStatus_Reading,
    eZWDiskStatus_Exception,
	eZWDiskStatus_Error,
	eZWDiskStatus_Readonly,
	eZWDiskStatus_Formatting,
	eZWDiskStatus_Warn,
}eZWDiskStatus;
typedef enum
{
	eZWDiskType_Local,
	eZWDiskType_ESATA
}eZWDiskType;
typedef struct tagZW_DISK_COMMON_CFG
{
	int bValid;																		/*!< 本结构体是否有效，0表示无效  */

	DWORD dwBusID;
	char  szProductType[DVR_MAX_CHANNELNAME_LEN];
	eZWDiskStatus dwStatus;								// 正常为0，正在写入为1，正在读为2，异常为3，错误为4，只读为5，格式化为6， 警告为7 ，参见枚举变量。
	DWORD dwTotalCapacity;						// 单位：MB
	DWORD dwAvailableCapacity;					// 单位：MB
	eZWDiskType dwType;								// 0 本地/ 1 ESATA
	int nVerifyMark;														/*!< 验证码(配置改变时，验证码会同步改变) */

	char  acReserved[256];						// 保留(方便日后扩展)
}ZW_DISK_COMMON_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_STORAGE_CFG
*  @brief	存储管理结构
 */
typedef struct tagVIDEONETCLIENT_STORAGE_CFG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_DISK struDisk[DVR_MAX_HARDDISK_NUM];								/*!< 硬盘信息（只读） */	// HDD 后续将删除
	ZW_DISK_COMMON_CFG struDiskCommon[DVR_MAX_HARDDISK_NUM];				// HDD 新增 替代struDisk
	VIDEONETCLIENT_DISK_GROUP struDiskGroup[DVR_MAX_DISKGROUP_NUM];					/*!< 盘组信息（只读） */
} VIDEONETCLIENT_STORAGE_CFG, *LPVIDEONETCLIENT_STORAGE_CFG;

/** @brief 设备存储管理结构体长度														 */
#define	STORAGE_CFG_LEN	sizeof(VIDEONETCLIENT_STORAGE_CFG)
//////////////////////////////////////////////////////////////////////////////


/*!
*  @struct	tagVIDEONETCLIENT_CHANNEL_STATE
*  @brief	设备通道状态
 */
typedef struct tagVIDEONETCLIENT_CHANNEL_STATE
{
	int bValid;																/*本结构体是否有效，表示无效(即系统没有该通道) */

	int nVideoBitrate;														/*!< 主码流码率（128kbit/s-5120kbit/s） */
	int nChildVideoBitrate;													/*!< CIF子码流码率（32 48 64 128 256 512kbit/s） */
	int nVGAVideoBitrate;													/*!< VGA子码流码率（32 48 64 128 256 512kbit/s） */
	int bUseAuxVideoStream;													/*!< 是否启动子码流：0-不启用，1-启用 */
	int bUseVGAVideoStream;													/*!< 是否启动子码流：0-不启用，1-启用 */

	int nRecordType;														/*!< 录像状态：0-无录像，1-报警录像类型，2-普通类型，3-手动录像类型，4-移动录像 */
	int bViLost;															/*!< 是否有无视频信号报警(0表示无信号，1表示有信号) */
	int bMotion;															/*!< 是否有移动报警(尚不支持) */

} VIDEONETCLIENT_CHANNEL_STATE, *LPVIDEONETCLIENT_CHANNEL_STATE;

/*!
*  @struct	tagVIDEONETCLIENT_DEVICE_STATE
*  @brief	设备状态信息
 */
typedef struct tagVIDEONETCLIENT_DEVICE_STATE
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_CHANNEL_STATE struChannelState[DVR_MAX_VIDEOIN_NUM];				/*!< 通道状态 */
} VIDEONETCLIENT_DEVICE_STATE, *LPVIDEONETCLIENT_DEVICE_STATE;

/** @brief 设备状态结构体长度														 */
#define	DEVICE_STATE_LEN	sizeof(VIDEONETCLIENT_DEVICE_STATE)
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_MAINTENANCE_COMMON
*  @brief	设备自动维护基本配置
 */
typedef struct tagVIDEONETCLIENT_MAINTENANCE_COMMON
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	int bEnable;															/*!< 是否启用 */
	int nMode;																/*!< 维护模式:0-每天,1-每周,2-单次 */
	int nWeekDayMask;														/*!< 星期模式时，第0位表示星期天,第1位表示星期1,对应位为1表示当天有效 */
	VIDEONETCLIENT_TIME struTime;													/*!< 单次模式，则年月日时分有效；其它模式，时分有效 */

} VIDEONETCLIENT_MAINTENANCE_COMMON, *LPVIDEONETCLIENT_MAINTENANCE_COMMON;

/*!
*  @struct	tagVIDEONETCLIENT_DEVICE_MAINTENANCE
*  @brief	设备自动维护
 */
typedef struct tagVIDEONETCLIENT_DEVICE_MAINTENANCE
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_MAINTENANCE_COMMON struCommon;									/*!< 设备自动维护基本配置 */

} VIDEONETCLIENT_DEVICE_MAINTENANCE, *LPVIDEONETCLIENT_DEVICE_MAINTENANCE;

/** @brief 设备自动维护结构体长度														 */
#define	DEVICE_MAINTENANCE_LEN	sizeof(VIDEONETCLIENT_DEVICE_MAINTENANCE)
//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_THRESHOLD
*  @brief	告警阀值（暂不实现）
*/
typedef struct tagVIDEONETCLIENT_THRESHOLD
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	float fCPUUseRatio;												/*!< CPU利用率 */
	float fMemoryUseRatio;											/*!< 内存利用率 */
	float fDiskSpaceRatio;											/*!< 硬盘利用率 */
	DWORD dwDiskSpaceBalance;										/*!< 硬盘剩余空间 */

}VIDEONETCLIENT_THRESHOLD, *LPVIDEONETCLIENT_THRESHOLD;

/*!
*  @struct	tagVIDEONETCLIENT_DOWNLOAD_MODE
*  @brief	下载方式配置（可以依据NAT的配置来区分，暂不实现）
*/
typedef struct tagVIDEONETCLIENT_DOWNLOAD_MODE
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */
	DWORD dwDownloadMode;											/*!< 下载方式， 0-hxht, 1-STREAM_TCP */

}VIDEONETCLIENT_DOWNLOAD_MODE, *LPVIDEONETCLIENT_DOWNLOADMODE;

//////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_NATSTATUS
*  @brief	NAT配置
*/
typedef struct tagVIDEONETCLIENT_NATSTATUS
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	DWORD dwIsNAT;													/*!< 是否在NAT后面，0表示不在后面，1表示在NAT后面 */

}VIDEONETCLIENT_NATSTATUS, *LPVIDEONETCLIENT_NATSTATUS;


//////////////////////////////////////////////////////////////////////////////
/*
压缩格式 语音通道数 采样深度   采样速率    
G711U.HX      1        16        8000  
G711A.HX      1        16        8000  
G722.HX       1        16    8000或16000
*/

/*!
*  @struct	tagVIDEONETCLIENT_VOICEPARAM
*  @brief	语音参数配置
*/
typedef struct tagVIDEONETCLIENT_VOICEPARAM
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	char szAudioEncoder[DVR_COMMON_STRING_LEN];						/*!< 支持的语音编码格式，可以有多个，以逗号隔开；G711U.HX G711A.HX G722.HX */
	DWORD dwChannel;												/*!< 通道数 */
	DWORD dwBitsPerSample;											/*!< 采样深度 */
	DWORD dwSamplesPerSec;											/*!< 采样率 */

}VIDEONETCLIENT_VOICEPARAM, *LPVIDEONETCLIENT_VOICEPARAM;


//////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_NET_CMS_STOREAGE
*  @brief	中心管理服务器存储注册配置信息
*/
typedef struct tagVIDEONETCLIENT_NET_CMS_STOREAGE
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	char szManageHostAddress[DVR_MAX_DOMAINNAME_LEN];				/*!< 远程管理主机地址，长度考虑域名 */

	unsigned short wManageHostPort;									/*!< 远程管理主机端口 */

} VIDEONETCLIENT_NET_CMS_STOREAGE, *LPVIDEONETCLIENT_NET_CMS_STOREAGE;

//////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_DEVICE_ID
*  @brief	前端设备ID（该ID是由Hxht接入服务器分配的）
*/
typedef struct tagVIDEONETCLIENT_DEVICE_ID
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	char szDeviceID[DVR_COMMON_STRING_LEN];							/*!< 前端设备ID */

} VIDEONETCLIENT_DEVICE_ID, *LPVIDEONETCLIENT_DEVICE_ID;

//////////////////////////////////////////////////////////////////////////////

typedef struct  
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_NET_CMS_STOREAGE struCmsStorage;							/*!< 中心管理服务器存储注册信息 */
	VIDEONETCLIENT_DEVICE_ID		struDeviceID;							/*!< 前端设备ID */
	VIDEONETCLIENT_NATSTATUS		struNATStatus;							/*!< NAT状态 */
	VIDEONETCLIENT_VOICEPARAM		struVoiceParam;							/*!< 语音呼叫参数 */

}VIDEONETCLIENT_HXHT_CFG, *LPVIDEONETCLIENT_HXHT_CFG;

typedef struct
{
	int bValid;					//本结构体是否有效，=0表示无效

	unsigned int dwFileMap; //0~30位表示1号~31号的文件分布情况,0表示无文件,1表示有文件
} VIDEONETCLIENT_FILEMAP_CFG, * LPVIDEONETCLIENT_FILEMAP_CFG;

//////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagVIDEONETCLIENT_PROTOCOL_NAME
*  @brief	协议名称配置
*/
typedef struct tagVIDEONETCLIENT_PROTOCOL_NAME
{
	int bValid;														/*!< 本结构体是否有效，0表示无效 */

	DWORD dwProtocolName;											/*!< 协议名称：协议是按位设置和读取的，例如只有手机协议时，该值为1；
																	只有互信互通协议时，该值为2；两个协议都有时，该值为3。
																	（私有协议是必须加载的，不在其中） */
}VIDEONETCLIENT_PROTOCOL_NAME, *LPVIDEONETCLIENT_PROTOCOL_NAME;

//////////////////////////////////////////////////////////////////////////////
/** @brief 地址长度(含结束符)															*/
#define VIDEONETCLIENT_ADDRESS_LEN				(256)

/** @brief 用户名长度																	*/
#define VIDEONETCLIENT_USERNAME_LEN				(32)

/** @brief 用户密码长度																	*/
#define VIDEONETCLIENT_USERPASS_LEN				(32)

/** @brief 默认保留字段个数																*/
#define VIDEONETCLIENT_DEF_RESERVE_NUM			(3)

/*!
*  @struct	tagVIDEONETCLIENT_USERLOGIN_INFO
*  @brief	用户登录参数
*/
typedef struct tagVIDEONETCLIENT_USERLOGIN_INFO
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	char	sServerIP[VIDEONETCLIENT_ADDRESS_LEN];						/*!< 服务器端IP地址							*/
	DWORD	dwCommandPort;								/*!< 登录连接的信令端口						*/
	char	sUName[VIDEONETCLIENT_USERNAME_LEN];						/*!< 登录用户的用户名称						*/
	char	sUPass[VIDEONETCLIENT_USERPASS_LEN];						/*!< 登录用户的用户密码						*/
	DWORD	dwReserve[VIDEONETCLIENT_DEF_RESERVE_NUM];			/*!< 保留									*/
}VIDEONETCLIENT_USERLOGIN_INFO, *LPVIDEONETCLIENT_USERLOGIN_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_SOURCE_DEVICE_INFO
*  @brief	源设备信息
*/
typedef struct tagVIDEONETCLIENT_SOURCE_DEVICE_INFO
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */

	int						nEnable;							/*!< 0表示不启用，1表示启用			*/
	VIDEONETCLIENT_USERLOGIN_INFO	cUserPara;							/*!< 用户参数						*/
	DWORD			dwVideoInNumber;					/*!< 视频输入数						*/
	DWORD			dwReserve[VIDEONETCLIENT_DEF_RESERVE_NUM];	/*!< 保留							*/
}VIDEONETCLIENT_SOURCE_DEVICE_INFO, *LPVIDEONETCLIENT_SOURCE_DEVICE_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_SOURCE_DEVICE_INFO_CONFIG
*  @brief	源设备配置
*/
typedef struct tagVIDEONETCLIENT_SOURCE_DEVICE_INFO_CONFIG
{
	int bValid;																/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_SOURCE_DEVICE_INFO	cSourceDevice[MAX_SOURCE_DEVICE_NUMBER];	/*!< 源设备信息					*/
	DWORD				dwReserve[VIDEONETCLIENT_DEF_RESERVE_NUM];			/*!< 保留				*/
}VIDEONETCLIENT_SOURCE_DEVICE_INFO_CONFIG, *LPVIDEONETCLIENT_SOURCE_DEVICE_INFO_CONFIG;


//////////////////////////////////////////////////////////////////////////////
//显示设备属性
//获取显示设备信息

/*!
*  @struct	tagVIDEONETCLIENT_VGAPARA
*  @brief	VGA参数
*/
typedef struct tagVIDEONETCLIENT_VGAPARA
{
	int bValid;									/*!< 本结构体是否有效，0表示无效 */

	int nResolution;							/*!< 分辨率 ,比特位表示 */
	int nResolutionCap;							/*!< 分屏能力，只读。与分辨率有关,按位表示，例：第九位为1表示
												支持9分屏 */
	DWORD	dwDeviceIndex;				/*!< 设备编号 */

}VIDEONETCLIENT_VGAPARA, *LPVIDEONETCLIENT_VGAPARA;

/*!
*  @struct	tagVIDEONETCLIENT_VGAPARA_CFG
*  @brief	VGA参数配置
*/
typedef struct tagVIDEONETCLIENT_VGAPARA_CFG
{
	int bValid;									/*!< 0表示无效 1表示有效 */

	int nVGACount;								/*!< VGA Out实际个数 */
	VIDEONETCLIENT_VGAPARA struVga[MAX_VGA_NUM];

}VIDEONETCLIENT_VGAPARA_CFG, *LPVIDEONETCLIENT_VGAPARA_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_VOOUT
*  @brief	视频输出
*/
typedef struct tagVIDEONETCLIENT_VOOUT
{
	int bValid; 								/*!< 0表示无效 1表示有效 */

	int byVideoFormat;							/*!< 输出制式,0-PAL,1-NTSC */
	int wLeftffset;								/*!< 视频输出左偏移 */
	int wRightffset;							/*!< 视频输出右偏移 */
	int wTopffset;								/*!< 视频输出上偏移 */
	int wBottomffset;							/*!< 视频输出下偏移 */
	int dwResolutionCap;						/*!< 分屏能力，只读。*/
	DWORD	dwDeviceIndex;				/*!< 设备编号 */

}VIDEONETCLIENT_VOOUT, *LPVIDEONETCLIENT_VOOUT;

/*!
*  @struct	tagVIDEONETCLIENT_VOOUT_CFG
*  @brief	视频输出配置
*/
typedef struct tagVIDEONETCLIENT_VOOUT_CFG
{
	int bValid;									/*!< 0表示无效 1表示有效 */
	int nTVCount;								/*!< TV Out 个数*/
	VIDEONETCLIENT_VOOUT struTv[MAX_TV_NUM];

}VIDEONETCLIENT_VOOUT_CFG, *LPVIDEONETCLIENT_VOOUT_CFG;

/*!
*  @struct	tagVIDEONETCLIENT_DISPDEV_CFG
*  @brief	解码器显示设备信息
*/
typedef struct tagVIDEONETCLIENT_DISPDEV_CFG
{
	int bValid; 								/*!< 0表示无效 1表示有效 */

	VIDEONETCLIENT_VGAPARA_CFG struVGA;					/*!< VGA参数 */
	VIDEONETCLIENT_VOOUT_CFG struTV;					/*!< TV参数 */

} VIDEONETCLIENT_DISPDEV_CFG,  * LPVIDEONETCLIENT_DISPDEV_CFG;

//////////////////////////////////////////////////////////////////////////////
/*!
*  @enum	eDeviceCapability
*  @brief	设备能力定义
*/
typedef enum eDeviceCapability
{
	//能力字段0
	eCapabilityLocalNetwork			= 0x00,							/*!< 本地网络								*/
	eCapabilityWirelessNetwork		= 0x01,							/*!< 无线网络								*/
	eCapabilityDHCP					= 0x02,							/*!< DHCP									*/
}eDeviceCapability;
//////////////////////////////////////////////////////////////////////////////
/*!
*  @struct	tagVIDEONETCLIENT_PROBE_NET_INTERFACE
*  @brief	网络接口配置
*/
typedef struct tagVIDEONETCLIENT_PROBE_NET_INTERFACE
{ 
	unsigned char	m_bytEnable;									/*!< 是否启用：0-不启用，1-启用，2-未找到	*/
	unsigned char	m_bytGetIPMode;									/*!< 获取地址：0-手动设定，1-DHCP获取		*/
	unsigned char	m_bytDevMac[DVR_MAX_MAC_NUM_LEN];				/*!< 设备MAC地址(Read)						*/
	unsigned char	m_bytDevIP[DVR_MAX_IP_STR_LEN];					/*!< 设备当前IP地址							*/
	unsigned char	m_bytDevMask[DVR_MAX_IP_STR_LEN];				/*!< 设备IP地址掩码							*/
	unsigned char	m_bytDevGateway[DVR_MAX_IP_STR_LEN];			/*!< 设备网关地址							*/
	DWORD	m_dwNetworkState;								/*!< 网络状态:
																			0-连接成功,
																			1-未启用,
																			2-正在连接网络,
																			3-连接网络失败,继续连接,
																			4-正在获取IP,
																			5-获取IP失败,继续获取				*/
	DWORD	m_dwReserve;									/*!< 保留数据								*/
}VIDEONETCLIENT_PROBE_NET_INTERFACE, *LPVIDEONETCLIENT_PROBE_NET_INTERFACE;
/*!
*  @struct	tagVIDEONETCLIENT_PROBE_NET_CFG
*  @brief	探测网络配置
*/
typedef struct tagVIDEONETCLIENT_PROBE_NET_CFG
{ 
	DWORD	m_bytDevType;									/*!< 服务器类型(Read)						*/
	unsigned char	m_bytDevChan;									/*!< 设备通道个数(Read)						*/
	unsigned char	m_bytDevAutoReg;								/*!< 是否启用自动注册						*/
	unsigned char	m_bytDevRegInterval;							/*!< 设备注册间隔时间						*/
	VIDEONETCLIENT_PROBE_NET_INTERFACE	m_cInterface[3];					/*!< 网络接口配置							*/
	unsigned char	m_bytDevManHost[DVR_MAX_IP_STR_LEN];			/*!< 设备管理主机地址						*/
	unsigned short	m_bytDevDetectPort;								/*!< 设备自动发现监听端口					*/
	unsigned short	m_wManHostPort;									/*!< 设备管理主机端口						*/
	unsigned short	m_wCmdPort;										/*!< 设备命令端口							*/
	unsigned short	m_wMediaPort;									/*!< 设备媒体端口							*/
	DWORD	m_dwDeviceCapability[4];						/*!< 设备能力，位域详见eDeviceCapability定义*/
	DWORD	m_dwDhcpEnable;									/*!< DCHP使能*/
	unsigned char	m_cEnableAutoGenIP;								/*!< 是否使能自适应IP							*/
	unsigned char	m_cReceiver[3];									/*!< 保留数据								*/
	DWORD	m_dwReserve[1];									/*!< 保留数据								*/
}VIDEONETCLIENT_PROBE_NET_CFG, *LPVIDEONETCLIENT_PROBE_NET_CFG;
//////////////////////////////////////////////////////////////////////////////
/*!
*  @struct	tagVIDEONETCLIENT_WLAN_CONNECTION
*  @brief	WIFI连接配置
*/
typedef struct tagVIDEONETCLIENT_PROBE_WLAN_CONNECTION
{
	int		m_bEnable;												/*!< WIFI状态 0 不启用 1 启用, 2 网卡未找到*/
	int		m_bConnect;												/*!< 是否连接上：0表示未连接上 1表示连接上(只读) */
	int		m_nKeyIndex;											/*!< 密码索引: 1 - 4						*/
	char	m_szSSID[DVR_MAX_SSID_LEN];								/*!< 热点名称								*/
	char	m_szKey[DVR_MAX_WIFI_KEY_LEN];							/*!< 密码									*/
	char	m_szMacAddress[DVR_MAX_MAC_STR_LEN];					/*!< 热点MAC地址							*/
	int		m_nNetworkType;											/*!< 网络类型: 0表示Managed, 1表示Ad-hoc	*/
	int		m_nAuthMode;											/*!< 认证模式: 0-OPEN,1-SHARED,2-WEPAUTO,3-WPAPSK,4-WPA2PSK,5-WPANONE,6-WPA,7-WPA2*/
	int		m_nEncrypType;											/*!< 加密算法 0-NONE,1-WEP,2-TKIP,3-AES		*/
	DWORD	m_dwReserve[3];									/*!< 保留数据								*/
} VIDEONETCLIENT_PROBE_WLAN_CONNECTION, *LPVIDEONETCLIENT_PROBE_WLAN_CONNECTION;
//////////////////////////////////////////////////////////////////////////////
/*!
*  @struct	tagVIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT
*  @brief	WIFI热点
*/
typedef struct tagVIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT
{
	char szSSID[DVR_MAX_SSID_LEN];									/*!< 热点名称 */
	char szMacAddress[DVR_MAX_MAC_STR_LEN];							/*!< 热点MAC地址 */
	int nSignal;													/*!< 热点信号强度 */
	int nAuthentication;											/*!< 认证模式 0-Open,1-Shared,2-WPAPSK, 3-WPA2PSK, 4-WPANONE(ad-hoc模式),5-WPA,6-WPA2 */
	int nEncrypType;												/*!< 加密模式  0表示NONE 1表示WEP 2表示TKIP 3表示AES */
	int nWirelessMode;												/*!< 1: legacy 11B only 2: legacy 11A only 3: legacy 11a/b/g mixed
																		 4: legacy 11G only 5: 11ABGN mixed    6: 11N only
																		 7: 11GN mixed      8: 11AN mixed      9: 11BGN mixed */
	DWORD	m_dwReserve[3];									/*!< 保留数据								*/
} VIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT, *LPVIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT;

/*!
*  @struct	tagVIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT_CFG
*  @brief	WIFI热点配置
*/
typedef struct tagVIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT_CFG
{
	int		m_nNumber;												/*!< 有效热点个数							*/
	VIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT m_struAccessPoints[DVR_MAX_AP_NUM];/*!< WIFI热点								*/
	DWORD	m_dwReserve[3];									/*!< 保留数据								*/
} VIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT_CFG, *LPVIDEONETCLIENT_PROBE_WLAN_ACCESSPOINT_CFG;
//////////////////////////////////////////////////////////////////////////////

/*!
*  @struct	tagZW_DVR_INSTALLTION_INFO
*  @brief	安装信息配置参数
 */
typedef struct tagZW_DVR_INSTALLTION_INFO
{
	int bValid;			/*!< 本结构体是否有效，0表示无效 */
	
	char strCompanyName[DVR_MAX_COMPANYNAME_LEN]; /*!< 公司名称 */
	char cReserve1[3];						/*!< 保留字段*/
	char strTelNum[DVR_MAX_TEL_NUM_LEN];	/*!< 公司电话号码 */
	char cReserve2[3];						/*!< 保留字段*/
	VIDEONETCLIENT_TIME struInstallTime;			/*!< 安装日期*/
	VIDEONETCLIENT_TIME struMaintainTime;			/*!< 最后一次维护日期 */
	char	dwReserve[256];					/*!<保留字段*/
}ZW_DVR_INSTALLTION_INFO;

/*!
*  @struct	tagVIDEONETCLIENT_RECODE_TIME_INFO
*  @brief	DVR录像配置参数（录像开始的最早时间，最晚时间）
 */
typedef struct tagVIDEONETCLIENT_RECODE_TIME_INFO
{
	int bVaild;						/*!< 本结构体是否有效，0表示无效 */

	VIDEONETCLIENT_TIME StartTime;			//最早时间
	VIDEONETCLIENT_TIME EndTime;			//最晚时间
	char dwReserver[256];
}VIDEONETCLIENT_RECODE_TIME_INFO;




//以下结构体中，无论是设备信息结构体数组，还是设备状态结构体数组，其中的每一个元素都依次和设备前端的通道相对应

/*!
*  @struct	tagVIDEONETCLIENT_FRONT_DEVICE_INFO
*  @brief	NVR前端设备列表参数
 */

//NVR前端设备连接列表信息
typedef struct tagVIDEONETCLIENT_FRONT_DEVICE_INFO
{
	int nValid;									//当nVailed为1时表示该通道有设备，当nvailed为0的时候表示该通道没有设备
	char strDeviceName[DVR_MAX_DEVICE_NAME_LENGTH];  //用来存储设备的名字（主要是设备的生产厂商）
	char strUserName[MAX_USER_NAME_LEN];		//设备的登录用户名
	char strPassword[MAX_USER_PASS_LEN];		//设备的登录密码
	char strDevIp[DVR_MAX_IP_STR_LEN];			//设备的IP
	char strDevMac[DVR_MAX_MAC_STR_LEN];		//设备mac地址
	char cReserve1[2];							//保留字段，保证四字节对齐
	DWORD dwDevType;							//设备的类型（需要NVR端提供，数字对应的字符串）
	DWORD dwDevProtocolType;					//设备的协议类型（需要NVR端提供，数字对应的字符串）
	DWORD dwFrontDeviceChannel;					//NVR端连接的多通道的设备的通道
	DWORD dwDevPort;							//设备访问的端口号（私有的是指命令端口号，不同的协议端口好不一样）

	DWORD dwActionState;						//该值主要用来添加，删除，设备的时候用于区分这些操作，客户端在获取该配置的时候，
												//该值可以为0，对于服务端，当收到该值为0，的时候表示添加设备或者修改网络配置重新登录，
												//当为1的时候，表示删除，该设备
	char dwReserve[256];						
}VIDEONETCLIENT_FRONT_DEVICE_INFO;


typedef struct tagVIDEONETCLIENT_FRONT_DEVICE_LIST
{
	int nValid;
	VIDEONETCLIENT_FRONT_DEVICE_INFO struFrontDeviceInfo[MAX_DEVICE_COUNT];
	VIDEONETCLIENT_FRONT_DEVICE_INFO struReserve[MAX_DEVICE_COUNT*3];     //保留位
	char dwReserve[1024];											 //保留位
}VIDEONETCLIENT_FRONT_DEVICE_LIST;


//NVR前端设备连接列表的状态信息
typedef struct tagVIDEONETCLIENT_FRONT_DEVICE_STATE
{
	int nValid;			//当nVailed为1时表示该通道有设备，当nvailed为0的时候表示该通道没有设备
	int nLoginState;  //登录状态，用来反映设备登录的情况，是一个只读的信息，用于在客户端获取NVR前端设备连接的状态，
	char cReserve[64];
}VIDEONETCLIENT_FRONT_DEVICE_STATE;

typedef struct tagVIDEONETCLIENT_FRONT_DEVICE_STATE_LIST
{
	int nValid;
	VIDEONETCLIENT_FRONT_DEVICE_STATE struDevState[MAX_DEVICE_COUNT];  //标记设备的状态
	VIDEONETCLIENT_FRONT_DEVICE_STATE struReserve[MAX_DEVICE_COUNT*3];     //保留位
	char dwReserve[1024];											 //保留位
}VIDEONETCLIENT_FRONT_DEVICE_STATE_LIST;


//修改NVR前端设备的网络信息
typedef struct tagVIDEONETCLIENT_FRONT_DEVICE_NETWORK
{
	int nValid;
	
	char strUserName[MAX_USER_NAME_LEN];		//设备的登录用户名
	char strPassword[MAX_USER_PASS_LEN];		//设备的登录密码
	char strDevIp[DVR_MAX_IP_STR_LEN];			//设备的IP
	char strDevSubmask[DVR_MAX_IP_STR_LEN];		//设备的子网掩码
	char strDevGateway[DVR_MAX_IP_STR_LEN];		//设备的网关
	char strDevMac[DVR_MAX_MAC_STR_LEN];		//设备mac地址
	char cReserve1[2];							//保留字段，保证四字节对齐
	char cDevUUid[64] ;							//设备唯一标识符
	DWORD dwDevPort;							//设备访问的端口号（私有的是指命令端口号，不同的协议端口好不一样）

	char dwReserve[1024];
}VIDEONETCLIENT_FRONT_DEVICE_NETWORK;


// 轮巡列表配置(新)

//!\brief 支持的最大的轮巡节点数
#define DEV_MAX_POLL_NODE_NUM		(64)
#define DEV_MAX_SUPPORT_CHANNEL		(64)
//所有支持的分屏模式，在底层所有分辨率均可
//上层可以根据实际效果，选择不同的分辨率支持不同的分屏模式

typedef enum
{
	SINGLE		= 1,
	THREE		= 3,
	FOUR		= 4,
	SIX			= 6,
	EIGHT		= 8,
	NINE		= 9,
	TEN			= 10,
	TWELVE		= 12,
	THIRTEEN	= 13,
	FIFTEEN		= 15,
	SIXTEEN		= 16,
	TWENTYFIVE	= 25,
	THIRTYSIX	= 36,
	SIXTYFOURTH = 64
}enumScreenType;

//!\brief 在自定义序列上，该节点的分屏模式及涉及的通道。
//! 例如：三分屏 则channel数组的前三个填响应的通道号。后面的填写0xff
typedef struct 
{
	int bValid;

	//!\brief 是否启用了该节点
	int bEnable;

	//!\brief 分屏模式
	int enScreenType;							// enumScreenType
	int Page;									// 用于扩展,如果某一屏支持的通道数大于64时使用,默认填零即可
	int dwDuration;								// 停留时间
	int dwMonitorIndex;							// 哪个屏幕上显示出来(弃用)．
	//!\brief 记录的通道
	unsigned int channel[DEV_MAX_SUPPORT_CHANNEL];
} VIDEONETCLIENT_PREVIEW_NODE, *LP_VIDEONETCLIENT_PREVIEW_NODE;

// 对应的命令是VIDEONETCLIENT_GET_PREVIEW_LIST和VIDEONETCLIENT_SET_PREVIEW_LIST
typedef struct 
{
	int bValid;

	unsigned short BeginNodeIndex;				// 便于以后扩充更多的节点的配置
	unsigned short MonitorIndex;				// 这里描述一下这个轮巡列表在哪个屏幕上
	//!\brief 节点数组
	VIDEONETCLIENT_PREVIEW_NODE Node[DEV_MAX_POLL_NODE_NUM];
} VIDEONETCLIENT_PREVIEW_LIST, *LP_VIDEONETCLIENT_PREVIEW_LIST;


// 获取轮转列表命令(仅解码器IPD支持此命令),对应的结构体为VIDEONETCLIENT_PREVIEW_LIST
#define VIDEONETCLIENT_GET_PREVIEW_LIST		(500)
// 设置轮转列表命令(仅解码器IPD支持此命令),对应的结构体为VIDEONETCLIENT_PREVIEW_LIST
#define VIDEONETCLIENT_SET_PREVIEW_LIST		(501)

#define PREVIEW_LIST_CFG_ALL				(0xFFFFFFFF)

// 启动停止轮转的控制使用远程控制命令
// 具体请参考远程控制命令的定义eRemotePreviewCruiseStart和eRemotePreviewCruiseStop

// 放大某个通道的显示(对应命令VIDEONETCLIENT_FULLSCREEN_WINDOW)
typedef struct
{
	int bValid;

	int nChannel;								// 要放大的是个哪个通道
	int dwMonitorIndex;							// 哪个屏幕上显示出来．
	char cResvered[255];
}VIDEONETCLIENT_FULLSCREEN_CHANNEL;

// 解码器显示通道放大控制命令定义
#define VIDEONETCLIENT_FULLSCREEN_WINDOW		(502)

// 解码器显示通道缩小控制命令定义
#define VIDEONETCLIENT_RETURN_FROM_FULLSCREEN	(503)

#define CONTROL_PREVIEW_ALL				(0xFFFFFFFF)


// 设置和获取解码器的屏幕分辨率(主命令)
#define VIDEONETCLIENT_GET_MONITOR_RESOLUTION		(504)

#define VIDEONETCLIENT_SET_MONITOR_RESOLUTION		(505)

// 获取当前设备支持的能力(次命令)
#define MONITOR_CAP									(0x01)			// 对应结构体VIDEONETCLIENT_RESOLUTION_CAP

// 设置当前屏分辨率配置(次命令)
#define MONITOR_CONFIG								(0x02)			// 对应结构体VIDEONETCLIENT_RESOLUTION_LIST

// 获取当前设备屏幕的分辨率

#define DVR_MAX_RESOLUTION_STRING_LEN				(16)			// 每个分辨率的描述字符串的最大长充
#define DVR_MAX_SUPPORT_RESOLUTION_NUM				(32)			// 屏幕最多支持多少分辨率

// 描述一个分辨率
typedef struct
{
	int bValid;
	char acResolutionDesc[DVR_MAX_RESOLUTION_STRING_LEN];			// 一个分辨率的描述,比如"1024x768", 最大16个字符应该够
}VIDEONETCLIENT_RESOLUTION, *LPVIDEONETCLIENT_RESOLUTION;

// 描述一个屏幕所支持分辨率能力
typedef struct
{
	int bValid;
	char acType[16];												// "HDMI", "VGA"
	char acDescription[32];											// 用于描述屏幕的一些信息，比如品牌型号之类的
	VIDEONETCLIENT_RESOLUTION acResolution[DVR_MAX_SUPPORT_RESOLUTION_NUM];		// 屏幕最多支持32个分辨率，这应该也够了吧
}VIDEONETCLIENT_MONITOR_RESOLUTION_CAP, *LPVIDEONETCLIENT_MONITOR_RESOLUTION_CAP;

// 描述设备内所支持的所有屏幕的能力
typedef struct  
{
	int bValid;
	VIDEONETCLIENT_MONITOR_RESOLUTION_CAP acMonitorCap[DVR_MAX_VGARESOLVING_NUM];		// 最多支持16个屏幕(全部只读)
}VIDEONETCLIENT_RESOLUTION_CAP;

// 设置和获取当前屏幕分辨率
typedef struct
{
	int bValid;
	VIDEONETCLIENT_RESOLUTION acResolutionList[DVR_MAX_VGARESOLVING_NUM];
}VIDEONETCLIENT_RESOLUTION_LIST;


///主码流和子码流的分辨率和帧率的关系，
#define MAX_CAP_ITEM (32)
//编码能力项，每项有4个成员
typedef struct tagVIDEONETCLIENT_RESOLUTION_AND_FRAME_CAP
{
	int nValid;					/*!< 本结构体是否有效，0表示无效 */
	int enMainStreamResolution; /*!< 主码流分辨率，参见eResolutionIndex枚举 */
	int nMainStreamMaxFrame;	/*!< 主码流最大帧率 */
	int enAuxStreamResolution; /*!< 子码流分辨率，参见eResolutionIndex枚举*/
	int nAuxStreamMaxFrame;		/*!< 子码流最大帧率 */
}VIDEONETCLIENT_RESOLUTION_AND_FRAME_CAP;

//编码能力表，在确定了当前主码流和子码流的分辨率之后，主码流的最大帧率和子码流的最大帧率互相影响，
//通过下面的结构体来从前端获取设备的能力表，然后根据当前的制式，主码流的分辨率，子码流的分辨率，以及任意码流的码率，
//来获取另外一个码流的码率
typedef struct tagVIDEONETCLIENT_RESOLUTION_AND_FRAME_CAP_TABLE
{
	int nValid;								/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_RESOLUTION_AND_FRAME_CAP struResolutionAndFrameCap[MAX_CAP_ITEM];/*!< 分辨率和最大帧率对应表格*/
} VIDEONETCLIENT_RESOLUTION_AND_FRAME_CAP_TABLE, *LPVIDEONETCLIENT_RESOLUTION_AND_FRAME_CAP_TABLE;

//码流的分辨率与码率之间的关系结构体，即不同分辨率的码流对支持的码率的大小是不一样的
#define MAX_RESOLUTION_COUNT	(32)
#define MAX_BITRATE_GRADE_COUNT	(16)
//位率动态计算因子
typedef struct tagVIDEONETCLIENT_BITRATE_INFO
{
	int nValid;
	int nBaseBitrate;	    /*!< 帧率为1帧时的比特率*/
	int nMaxBitrate;		/*!< 最大帧率时的比特率*/
	int nMaxFrame;			/*!< 最大帧率*/
}VIDEONETCLIENT_BITRATE_INFO,LPVIDEONETCLIENT_BITRATE_INFO;

typedef struct tagVIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP
{
	int nValid;						/*!< 本结构体是否有效，0表示无效 */
	int enResolutionFormat;			/*!< 分辨率，参见eResolutionIndex枚举*/
	VIDEONETCLIENT_BITRATE_INFO struBitrateInfo[MAX_BITRATE_GRADE_COUNT];	/*!< 该分辨率下对应的码率信息*/
}VIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP,*LPVIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP;

typedef struct tagVIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP_TABLE
{
	int nValid;															/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP struResolutionAndBitrateCap[MAX_RESOLUTION_COUNT]; /*!< 分辨率和码率对应表格*/
}VIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP_TABLE, *LPVIDEONETCLIENT_RESOLUTION_AND_BITRATE_CAP_TABLE;



typedef struct tagVIDEONETCLIENT_VI_INFO
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */
	int nResolution;								            /*!< 输入视频的分辨率, 参见eResolutionIndex枚举（暂时不用）*/
	int nFrameRate;                                             /*!< 输入视频的帧率,用于确定通道相关的制式（25，NTSC，30，PAL）*/
	char acReserved[32];										/*!< 保留字段 */
} VIDEONETCLIENT_VI_INFO, *LPVIDEONETCLIENT_VI_INFO;

typedef struct tagVIDEONETCLIENT_VI_CFG
{
	int bValid;													/*!< 本结构体是否有效，0表示无效 */
	VIDEONETCLIENT_VI_INFO struViInfo[DVR_MAX_VIDEOIN_NUM];				/*!< 各通道视频输入信息 */
}VIDEONETCLIENT_VI_CFG, *LPVIDEONETCLIENT_VI_CFG;
#endif
